Hey, ich habe mal wieder eine Frage/Problem.
Ich habe einen Button, btnMove, wenn ich den drücke dann kann ich auf ein Objekt, z.B. Label, Editfeld oder Memo, drücken um dieses zubewegen.
Bei einem Textfeld funktioniert das auch, aber nicht bei einem Label. Da kommt dann ein Fehler bei meinControl.Left:=.....
Warum geht das nicht bei einem Label??
Hier der Move Code
Delphi-Quellcode:
procedure TForm3.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
meinControl: TWinControl;
j : integer; //Schleifen Variable
begin
MDown:=true;
if move=true then begin
if (Sender is TWinControl) then
if (Sender<>Form3) then
meinControl := (Sender as TWinControl)
else
Exit;
while MDown=true do
begin
meinControl.Left:=(Mouse.CursorPos.x-Form3.Left-Form3.BorderWidth); //Hierhin verweist die Fehlermeldung
meinControl.Top:=(Mouse.CursorPos.y-Form3.Top-50);
//Form3.Refresh;
Application.ProcessMessages;
for j:=3 to Memo1.Lines.Count do
begin
if Memo1.Lines[j]=meinControl.Name then
begin
Memo1.Lines[j+2]:=(inttostr(meinControl.BoundsRect.Left));
Memo1.Lines[j+3]:=(inttostr(meinControl.BoundsRect.Top));
Memo1.Lines[j+4]:=(inttostr(meinControl.Width));
Memo1.Lines[j+5]:=(inttostr(meinControl.Height));
end;
end;
end;
end
else
Exit;
end;