Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Labels und StatusBar werden zuspät aktualisiert (https://www.delphipraxis.net/65247-labels-und-statusbar-werden-zuspaet-aktualisiert.html)

ickehausen 14. Mär 2006 09:58


Labels und StatusBar werden zuspät aktualisiert
 
Hallo,

ich habe eine Anwendung gestrickt, die Datei aus einer Text-Datei in eine andere Datei konvertiert.
Gestartet wird die Konvertierung mit einem Button-Click. Da die Konvertierung einige Zeit in Anspruch nimmt, soll beim Clicken der StatusBar anzeigen, dass die Datei in Bearbeitung ist. Wenn die Konvertierung durchgeführt worden ist, soll sich der Text in Fertig ändern. Hier der Code:

Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  StatusBar1.Panels[0].Text := 'Datei wird erzeugt!';
  HHJahr := MaskEdit1.EditText;
  BMon := MaskEdit2.EditText;
  if (StrToInt(BMon) < 1) or (StrToInt(BMon) > 12) Then
  begin
    StatusBar1.Panels[0].Text := 'Bitte einen Monat zwischen 01 und 12 eingeben!';
    exit;
  end;

  if CheckBoxBeamte.Checked then DTA((Quellpfad + Quelldatei_Beamte),(Zielpfad + Zieldatei_Beamte));
  if CheckBoxBeschaeftigte.Checked then DTA((Quellpfad + Quelldatei_Beschaeftigte),(Zielpfad + Zieldatei_Beschaeftigte));

  StatusBar1.Panels[0].Text := 'Fertig!';
end;
DTA ist die Procedure, welche die Konvertierung erledigt.

Daniel G 14. Mär 2006 10:01

Re: Labels und StatusBar werden zuspät aktualisiert
 
Ah, super. Und wie war jetzt die Frage? :stupid:

mquadrat 14. Mär 2006 10:03

Re: Labels und StatusBar werden zuspät aktualisiert
 
Gerate würde ich sagen, ein Application.ProcessMessages nach dem Setzen des Statusbartextes sollte helfen (wenn ich die Frage richtig gerate hab ;) )

Klaus01 14. Mär 2006 10:04

Re: Labels und StatusBar werden zuspät aktualisiert
 
vielleicht hilft ein
Delphi-Quellcode:
application.processMessages
hinter

StatusBar1.Panels[0].Text := 'Datei wird erzeugt!';
und
StatusBar1.Panels[0].Text := 'Bitte einen Monat zwischen 01 und 12 eingeben!';
und
StatusBar1.Panels[0].Text := 'Fertig!';


Grüße
Klaus

ickehausen 14. Mär 2006 10:08

Re: Labels und StatusBar werden zuspät aktualisiert
 
Danke!! Jetzt klappts, bin halt Anfänger! :thumb: :hi:

Bernhard Geyer 14. Mär 2006 10:11

Re: Labels und StatusBar werden zuspät aktualisiert
 
Besser ist aber hier ein
Delphi-Quellcode:
StatusBar1.Update
sonst könnte u.U. der Button beim Ausführen von
Delphi-Quellcode:
Application.ProcesMessages
nochmal gedrückt werden (BitBtn1Click "springt" nochmal an. So wird das Control nur neu gezeichnet.

ickehausen 14. Mär 2006 12:11

Re: Labels und StatusBar werden zuspät aktualisiert
 
Vielen Dank Bernhard, solche Probleme würde ich nie selber erkennen, wenn es nicht die Hinweise von Euch gäbe. :kiss:

Luckie 14. Mär 2006 12:18

Re: Labels und StatusBar werden zuspät aktualisiert
 
Ein Thread wäre hier wohl das mittel der Wahl, da sonst dein Fenster für die dauer der Aktion nicht mehr reagiert und den Eindruck erweckt es wäre abgestürzt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:50 Uhr.

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