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 überschreiben sich (https://www.delphipraxis.net/72258-labels-ueberschreiben-sich.html)

Andreas L. 27. Jun 2006 20:29


Labels überschreiben sich
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich lasse zur Laufzeit den Text meines Labels ändern. Dazu verwende ich folgenden Code:

Delphi-Quellcode:
 lblInitalize.caption:='Fertig!';
 lblInitalize.Repaint;
Den selben Code mit anderen Text rufe ich noch weitere 4 mal auf. Leider bleibt am Ende des Labels immer ein Stück Text vom vorherigen Text übrig (siehe Anhang). Anstatt repaint habe ich auch schon refresh probiert. Bei Application.processmessages wechselt der Text nicht.

Muss ich das irgendwie anders aufrufen? Muss ich noch irgendwas machen?

Ultimator 27. Jun 2006 20:31

Re: Labels überschreiben sich
 
Verwende mal TLabel.Update, das sollte klappen

Andreas L. 27. Jun 2006 20:46

Re: Labels überschreiben sich
 
Wahrscheinlich hängt das damit zusammen das ich meinen Code im onPaint des Forms aufrufe. Leider weiß ich nicht wo ich es sonst hinpacken soll. Im onCreate und onShow gehts nicht.

Hier der Code den ich aufrufen möchte:
Delphi-Quellcode:
var
 config: Tinifile;
begin

 lblInitalize.Caption:='Überprüfe Einstellungenverzeichnis...';
 lblInitalize.Update;
 sleep(1000);

 //checks the config file
 if FileExists(GetShellFolder(CSIDL_APPDATA)+'\Web4Dev\config.ini')=false then
  //create config directory and copy default config file if it does not exist
  begin
   ForceDirectories(GetShellFolder(CSIDL_APPDATA)+'\Web4Dev\');
   CopyFile(pchar(extractfilepath(application.ExeName)+'config.bak'),pchar(GetShellFolder(CSIDL_APPDATA)+'\Web4Dev\config.ini'), true);
  end;

 pgbInitalize.Position:=pgbInitalize.Position+20;
 lblInitalize.Caption:='Lade Einstellungen...';
 lblInitalize.Update;
 sleep(1000);

 //load configuration
 config:=Tinifile.Create(GetShellFolder(CSIDL_APPDATA)+'\Web4Dev\config.ini');
 frmManager.language:=config.ReadString('Application','Language','English');

 pgbInitalize.Position:=pgbInitalize.Position+20;
 lblInitalize.Caption:='Lade Sprache...';
 lblInitalize.Update;
 sleep(1000);

 //load language
 if frmManager.LoadLanguage(frmManager.language)=false then
  begin
   if frmManager.language<>'English' then
    begin
     //if it does failure, load english language
     if frmManager.LoadLanguage('English')=false then
      begin
       //if english language cannot be loaded display a message and exit the program
       if MessageDLG('Die Sprachdatei konnte nicht geladen werden!'+#13#10+'Klicken Sie auf OK um die Anwendung zu beenden!',mtError, [mbOK],0)=mrOK then
        begin
         config.Free;
         Application.Terminate;
        end
      end
    end
   else
    begin
     //if english language cannot be loaded display a message and exit the program
     if MessageDLG('Die Sprachdatei konnte nicht geladen werden!'+#13#10+'Klicken Sie auf OK um die Anwendung zu beenden!',mtError, [mbOK],0)=mrOK then
      begin
       config.Free;
       Application.Terminate;
      end
    end
  end
 else
  begin
   pgbInitalize.Position:=pgbInitalize.Position+30;
   lblInitalize.caption:='Abschließende Schritte...';
   lblInitalize.Update;
   sleep(1000);
  end;

 //free memory
 config.Free;

 pgbInitalize.Position:=pgbInitalize.Position+10;
 lblInitalize.caption:='Fertig!';
 lblInitalize.Update;
 sleep(1000);
 frmManager.Show;
 frmSplash.Close;
Wo kann ich das noch hinpacken. Ist für einen Splash-Screen ;-)

Nils_13 27. Jun 2006 21:34

Re: Labels überschreiben sich
 
Der Fehler ist denke ich mal, dass der Textaufruf zu oft aufgerufen wird.
Die Methode von Matze könnte dir helfen:
http://www.delphipraxis.net/internal...ghlight=labels


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 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