Wir möchtene den TOpenDialog mit einem eigenen Button ergänzen. Den Button können wir erstellen und auch ein Ereignis zuweisen. Zur Laufzeit wird das Ereignis aber nicht ausgeführt.
Delphi-Quellcode:
procedure TForm1.OpenDialog1OnShow(Sender: TObject);
var
hParent: THandle;
Rect: TRect;
btnDR: TButton;
begin
// Fensterhandle holen
hParent := GetParent(OpenDialog1.Handle);
// Position und Grösse ermitteln
GetWindowRect(hParent, Rect);
// Dialog vergrössern für Schalter
SetWindowPos(hParent, 0, 0, 0, rect.Right - rect.Left, rect.Bottom - rect.Top
+ 30, SWP_NOMOVE);
// Schalter erstellen und anpassen
btnDR := TButton.Create(Self);
btnDR.Name := 'btnDR';
btnDR.Caption := 'Suche';
// Schalter positionieren
btnDR.Left := Rect.Right - Rect.Left - 87;
btnDR.Top := Rect.Bottom - Rect.Top - 30;
btnDR.Anchors := [akRight,akBottom];
btnDR.OnClick := btnClick;
//btnClick;
btnDR.ParentWindow := hParent;
end;
procedure TForm1.btnClick(Sender: TObject);
begin
showmessage('Hallo');
end;