Damit der Button auch benutzt werden kann muss er auf ein 2. Formular gesetzt werden.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.Show;
Form2.Button1.Left := 0;
Form2.Button1.Top := 0;
setwindowlong(form2.Handle, GWL_STYLE, getwindowlong(form2.handle, GWL_STYLE)
and (not ws_dlgframe) and (not ws_border) and (not WS_SIZEBOX));
windows.SetParent(form2.Handle, ('hWnd*));
//im dem fremden Fenster auf Position bringen
MoveWindow(form2.Handle, 0, 0, Form2.Button1.Width, Form2.Button1.Height, true);
end;
Dann wird das Formular auf die Größe des Button reduziert und auf das fremde Fenster gesetzt. Bei dem Code wird das Formular mit dem Button ganz oben links auf das fremde Fenster gesetzt.
Bei mir funktionierte es jedenfalls.