Einzelnen Beitrag anzeigen

sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Controls zur Laufzeit beweglich machen

  Alt 23. Okt 2017, 16:03
Hallo,

ich baue gerade an einen Designer und möchte zur Laufzeit eigene Controls erzeugen und mit der Maus verschiebbar machen.

Hierfür habe ich folgenden Schnipsel gefunden:

Delphi-Quellcode:
procedure TForm1.PanelMouseDown(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ssLeft in Shift then
    begin
      ReleaseCapture;
      Panel.Perform(WM_SYSCOMMAND,$F012,0);
    end;
end;
Das funktioniert mit einem zur Entwurfszeit auf die Form gepappten Panel prima, aber irgendwie fehlt mir der Weg das für ein oder mehrere zur Laufzeit erzeugte eigene "myPanel" (von TPanel abgeleitet) umzusetzen!

Der Versuch von

Delphi-Quellcode:
Pan := TmyPanel.Create(Form1);
Pan.Parent := Form1;
Pan.MouseDown := PanelMouseDown;
führt zu der Fehlermeldung: "auf protected-Symbol TControl.OnMouseDown kann nicht zugegriffen werden"

Kann mir bitte jemand auf die Sprünge helfen?

Ciao
Stefan

Geändert von sko1 (23. Okt 2017 um 16:15 Uhr)
  Mit Zitat antworten Zitat