向TOpenPictureDialog添加按钮

时间:2011-04-23 18:53:13

标签: delphi delphi-7

我在Windows XP下使用Delphi7。如何在Delphi TOpenPictureDialog组件中添加“删除”工具按钮?有没有办法让对话框进入Designer添加按钮及其行为?

2 个答案:

答案 0 :(得分:5)

您可以向TOpenPictureDialog添加新按钮,但不能将对话框添加到Designer中,您必须在运行时执行此操作。

检查此示例

procedure TForm1.FormCreate(Sender: TObject);
var
  FDeleteButton   : TSpeedButton;
  FPreviewButton  : TSpeedButton;
begin
    FPreviewButton := TSpeedButton(OpenPictureDialog1.FindComponent('PreviewButton'));
    FDeleteButton  := TSpeedButton.Create(OpenPictureDialog1);
    FDeleteButton.SetBounds(107, 1, 23, 22);
    FDeleteButton.Parent    := FPreviewButton.Parent;
    FDeleteButton.NumGlyphs:=2;        
    FDeleteButton.Glyph.LoadFromResourceName(HInstance, 'BBABORT');
    FDeleteButton.Name    := 'DeleteButton';
    FDeleteButton.OnClick := DeleteBtnClick;
end;

procedure TForm1.DeleteBtnClick(Sender: TObject);
begin
   //here you must implement the delete logic 
   ShowMessage('Hello from delete button');
end;

,结果是

enter image description here

答案 1 :(得分:0)

您可以编写“自己的”OpenDialog并从TOpenPictureDialog继承这个新类。有一个名为“PBOpenPreviewDialog”的(旧)免费软件组件就是这样做的(来自TOpenDialog),也许您可​​以将该组件作为一个例子?

您可以在以下网址找到该网页:http://bak-o-soft.dk/Delphi/PBFolderDialog.aspx
此处组件的下载链接:http://bak-o-soft.dk/Download.asgx.ashx/Delphi/PBFolderDialog.zip