TLabel mit Delphi/Lazarus verschieben

DeChecka

Erfahrenes Mitglied
Hi Leute!

Habe folgendes mir unerklärliches Problem: Ich will ein bestehendes Label auf der TForm verschieben, und zwar so, dass man diesen Vorgang optisch erkennt... Zur Verdeutlichung:
Code:
procedure TForm1.Beispiel;
var i: integer;
begin
  lbl_Test.Visible := true; {lbl_Test ist ein bereits existierendes Label}
  for i := 100 to 500 do {100 bis 500 nur mal als Beispiel nun, können bzw. sollen später auch  andere absolute Zahlenwerte sein}
  begin
    lbl_Test.Left := i;
    sleep(10);
  end;
end;

So in der Art soll das aussehen...
Hab's auch schon mit längerer sleep-Verzögerung versucht, doch das Ergbenis ist immer dasselbe: Nach Aufrufen der Prozedur TForm1.Beispiel scheint das Programm zu hängen, allerdings sieht man nur optisch nix, es tut sich trotzdem was. Denn nach einiger Zeit erscheint das Label LblTest mit Ausrichtung Left := 500... Offenbar (so vermute ich zumindest) aktualisiert sich Form1 immer erst, nachdem die ganze Prozedur abgearbeitet worden ist, und das find ich echt nicht gut! ;-)
Naja, wollt mal fragen, ob jemand weiß, ob ich mit meiner Vermutung richtig liege und wie man das eventuell meinen Vorstellungen entsprechend anpassen könnte...

Gruß
DeChecka
 
Zuletzt bearbeitet:

Hellie

Erfahrenes Mitglied
Mit deiner Vermutung liegst du wahrscheinlich richtig. Probier mal, ein Application.ProcessMessages; einzubinden. Damit sollte es funktionieren!