Das mit dem "Umbiegen" des Parents funzt wunderbar. Ich kann jegliche Controls von meinem Fenster auf ein anderes umlegen. Ich kann dann auch alles mit dem jeweiligen Control machen, was ich auch in der eigenen Anwendung machen könnte.
Ok, ich bekomme keine Botschaften mehr vom Control, das wird in diesem Fall ja aber auch nicht gebraucht (wobei, ein Schließen-Knopf wäre sinnvoll
).
Mit dem folgenden Code kann man das Control bei Bedarf auch wieder zurückholen (solange das andere Fenster sammt dem Panel nicht geschlossen wurde):
Delphi-Quellcode:
var
Hnd: HWnd = 0;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
if (Hnd = 0) then Hnd := FindWindow(nil, 'Arbeitsplatz');
if (Hnd <> 0) then
Hnd := Windows.SetParent(Panel1.Handle, Hnd)
else
ShowMessage('Öffne mal den Arbeitsplatz und versuchs dann nochmal!');
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Panel1.Color := not Panel1.Color;
Panel1.Font.Color := not Panel1.Color;
Panel1.Caption := Format('Parent: %d', [GetParent(Panel1.Handle)]);
end;
Übrigens, ich hasse Werbebanner