Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Statuslabel ändert die Aufschrift nicht... (https://www.delphipraxis.net/36823-statuslabel-aendert-die-aufschrift-nicht.html)

werungar 26. Dez 2004 15:07


Statuslabel ändert die Aufschrift nicht...
 
Hallo alle zusammen!

Ich schreibe gerade ein Programm zur Darstellung der Koch Kurve und würde jetzt gerne eine Art Statusanzeige einbauen, die anzeigt, ob das Programm gerade rechnet, oder nicht. Dazu wollte ich am Anfang der Prozedur 'Berechne...' und vor dem Ende 'Bereit' in ein Label schreiben.

PROBLEM:
'Berechne...' wird nie angezeigt. Es ist die ganze Zeit nur 'Bereit' zu lesen (ist auch beim Programmstart dort eingetragen). Wenn ich das Label beim Programmstart leer lasse und dann auf den Button klicke, erscheint ebenfalls nur 'Bereit' am Ende der Prozedur...
Hier mal der betreffende Quelltext:

Delphi-Quellcode:
procedure TForm1.It_SchritteButtonClick(Sender: TObject);

var fehler : boolean;

begin
StatusLabel.Caption:='Berechne...';
fehler:=false;

TRY
  n:=StrToInt(It_SchritteTEdit.Text);
except
 fehler:=true;
end;

IF (fehler=false) AND (StrToInt(It_SchritteTEdit.Text)>=0)
    AND (StrToInt(It_SchritteTEdit.Text)<=10) THEN

  begin
  x:=0; y:=Image1.Height-1; laenge:=Image1.Width; winkel:=0;
  Image1.Canvas.MoveTo(ROUND(x),ROUND(y));

  IF KochRadioButton.Checked THEN Koch_Kurve(n,laenge,winkel);

  IF SquareRadioButton.Checked THEN Square(n,laenge,winkel);


  end

ELSE showmessage ('Fehler! Bitte geben Sie nur ganze Zahlen zwischen 0 und 10 ein!');

StatusLabel.Caption:=('Bereit');
end;

Robert Marquardt 26. Dez 2004 15:10

Re: Statuslabel ändert die Aufschrift nicht...
 
Damit der Label anzeigt muessen die Messages verarbeitet werden.
Alternativ ein "StatusLabel.Update;" hinter jede Zuweisung des Labeltextes setzen.
Update erzwingt ein sofortiges neuzeichnen.

Duffy 26. Dez 2004 15:12

Re: Statuslabel ändert die Aufschrift nicht...
 
Hallo werungar,
Zitat:

Zitat von werungar
Hallo alle zusammen!
Delphi-Quellcode:
  StatusLabel.Caption:=('Bereit');
  StatusLabel.Invalidate;
end;

oder mal so versuchen ...

bye
Claus

Robert Marquardt 26. Dez 2004 15:25

Re: Statuslabel ändert die Aufschrift nicht...
 
Genau das hilft nicht, da ja offensichtlich keine Messages verarbeitet werden.
Invalidate loest aber nur eine WM_PAINT Message aus.

Duffy 26. Dez 2004 15:34

Re: Statuslabel ändert die Aufschrift nicht...
 
Hallo Robert Marquardt,
geht aber so nicht aus der Delphi hervor. Wenns so ist, dann gut.

bye
Claus

werungar 26. Dez 2004 16:08

Re: Statuslabel ändert die Aufschrift nicht...
 
Erstmal vielen Dank für eure Antworten!!

StatusLabel.Update;
Das hat geholfen.

Statuslabel.Invaliadte;
Hat nicht geholfen, aber trotzdem danke.

In diesem sinne einen frohen restlichen zweiten Weihnachtstag :)

glkgereon 26. Dez 2004 17:09

Re: Statuslabel ändert die Aufschrift nicht...
 
Nochmal was dazu:

Ich häng immer ein Application.ProcessMessages dazwischen, weil dann auch buttonKlicks etc abgearbeitet werden....

Muetze1 26. Dez 2004 17:22

Re: Statuslabel ändert die Aufschrift nicht...
 
Moin!

Zitat:

Zitat von glkgereon
Nochmal was dazu:

Ich häng immer ein Application.ProcessMessages dazwischen, weil dann auch buttonKlicks etc abgearbeitet werden....

Das sollte man lieber nicht machen, weil dies zum einen überdimensioniert ist und zum anderen völlig fehl am Platze. Sprint kann dazu bestimmt genaueres zu sagen.

Ansonsten hilft auch ein einfaches UpdateWindow(Handle); nach der Zuweisung oder ein Update direkt von der Form, was IMHO das gleiche auslösen sollte.

MfG
Muetze1


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz