Hallo,
da bin ich wieder.
Erzeugen und ansprechen der Dynamisch erzeugten Labels funktioniert.
Leider kann ich nicht die Dynamisch erzeugten Labels per ONMouseMove von A nach B verschieben.
Nur wenn ich nicht auf die Labels direkt klicke, funktioniert die Verschiebung.
Natürlich ist dies nicht elegant, wenn man überlegt, dass man erst neben dem Objekt klicken muss den man verschieben will!
Mein Frage ist:
Wie kann ich die Dynamisch erzeugten Labels, mit klick auf die selbst, von A nach B verschieben?
Hier der Code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| var OBName :String;
procedure TForm1.Button1Click(Sender: TObject); var i : integer; begin for i := 1 to 5 do begin MyLabel := TLabel.Create(self); MYlabel.Parent := self; Mylabel.Name := 'MYLabel' + intToStr(i); Mylabel.Caption := 'Meine Label'; MYLabel.Top := i * 30; MyLabel.OnMouseDown := Form1.OnMouseDown; end; Button1.enabled := False; end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i : integer; begin If Sender is Tlabel then OBName := Tlabel(Sender).Name ; end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if Shift = [ssLeft] then If FindComponent(OBName) is TLabel then with FindComponent(OBName) as TLabel do begin left := x; top := y; end; end; |
Gruß + Danke
HODA
(09.10.02 18:31 Tino) Code-Tags hinzugefügt.