![]() |
Befehle werden einfach übersprungen
Hi,
Ich habe ein Problem mit meinem Prog.
Delphi-Quellcode:
Wenn ich jetzt auf den ToolButton2 klicke, startet es, aber erst ab Memo1.Lines... Also alles davor wird einfach übersprungen ! Wenn ich jetzt aber zwischen ToolButton5... und Memo1..., ShowMessage('Hallo'); setze, werden die oberen befehle nicht übersprungen. Warum is das so und wie kann ich alles ausführen, ohne das ich ne meldung anzeigen muss ?
procedure TMain.ToolButton2Click(Sender: TObject);
begin StatusBar1.Panels[1].Text := 'Bitte warten...'; ToolButton2.Enabled := False; ToolButton3.Enabled := False; ToolButton5.Enabled := False: Memo1.Lines.Text := StringReplace(Memo1.Lines.Text, '111', 'in ', [rfReplaceAll]); ProgressBar1.StepIt; Memo1.Lines.Text := StringReplace(Memo1.Lines.Text, '222', 'das', [rfReplaceAll]); ProgressBar1.StepIt; Memo1.Lines.Text := StringReplace(Memo1.Lines.Text, '333', 'von', [rfReplaceAll]); ProgressBar1.StepIt; ... end; MFG |
Re: Befehle werden einfach übersprungen
hmm... :gruebel: weiß net obs damit zu tun hat aber:
Code:
<- da is ein Doppelpunkt, kein Senikolon ;)
ToolButton5.Enabled := False:
|
Re: Befehle werden einfach übersprungen
:-D Oh, kleiner Tipfehler. Aber nein, daran liegts nicht. Es funktioniert immer noch nicht :cry:
|
Re: Befehle werden einfach übersprungen
Code:
hmm... wie hast du denn das l deklariert, oder welchen Wert hat es?
StatusBar1.Panels[1].Text := 'Bitte warten...';
|
Re: Befehle werden einfach übersprungen
Hast du es mal so probiert?
Delphi-Quellcode:
procedure TMain.ToolButton2Click(Sender: TObject);
begin StatusBar1.Panels[1].Text := 'Bitte warten...'; ToolButton2.Enabled := False; ToolButton3.Enabled := False; ToolButton5.Enabled := False; Application.ProcessMessages; // <--- Memo1.Lines.Text := StringReplace(Memo1.Lines.Text, '111', 'in ', [rfReplaceAll]); ProgressBar1.StepIt; Memo1.Lines.Text := StringReplace(Memo1.Lines.Text, '222', 'das', [rfReplaceAll]); ProgressBar1.StepIt; Memo1.Lines.Text := StringReplace(Memo1.Lines.Text, '333', 'von', [rfReplaceAll]); ProgressBar1.StepIt; ... end; |
Re: Befehle werden einfach übersprungen
die befehle werde nicht übersprungen.
nur die vcl hat keine zeit mehr die buttons und labels neuzuzeichnen. im post vor meinen ist die lösung. wenn du programmteile hast die länger laufen solltest du processmessages aufrufen damit die form nicht einfriert. du kannst den prozess der lange dauert auch einfach in einen thread verbannen. |
Re: Befehle werden einfach übersprungen
Du siehst beim Kompilieren auch schon, ob zeilen übersprungen werden, oder nicht.
Die, die ausgeführt werden, sind links mit einem blauen Punkt gekennzeichnet. |
Re: Befehle werden einfach übersprungen
Moin Äfan,
es ist übrigens keine gute Idee immer direkt Memo1.Lines.Text anzusprechen. Speichere Dir lieber Memo1.Lines.Text zu Beginn in einem String, verarbeite den, und schreibe ihn zum Schluss wieder zurück. Jedesmal, wenn Du die Eigenschaft Text ausliest, wird sie aus den Lines zusammengebaut, und beim Schreiben dann natürlich umgekehrt. Das drückt erheblich auf die Performance. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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