Einzelnen Beitrag anzeigen

Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#1

Objekte Bewegen

  Alt 19. Aug 2013, 07:31
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;
  Mit Zitat antworten Zitat