Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ShowMessage Fenster schließt nicht richtig? (https://www.delphipraxis.net/169448-showmessage-fenster-schliesst-nicht-richtig.html)

Alterauge 20. Jul 2012 09:58

ShowMessage Fenster schließt nicht richtig?
 
Hallo,
das ShowMessage Fenster schließt nicht richtig,
es geht kurz zu aber dann sofort wieder auf?

Was mache ich hier falsch?

Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
var
 i : integer;
 s, d: String;
begin
 i := 0;
 while i < fileListBox1.Items.count do begin
  Memo2.Lines.LoadFromFile(fileListBox1.FileName);
  s := Memo2.Lines.Text; //Beinhaltet z. B.: TEXT TEXT TEXT TEXT TEXT **ID 999
  d := '**';
  Delete(s, 1, Pos(d, s) - 1 + Length(d));
  while Pos(#10, s) > 0 do Delete(s, Pos(#10, s), 1); //evtl. Zeilenumbruch ...
  while Pos(#13, s) > 0 do Delete(s, Pos(#13, s), 1); //entfernen
  s := Trim(s);
  ShowMessage(s); //Ergebnis ist: ID 999
  end;
end;

Bummi 20. Jul 2012 10:02

AW: ShowMessage Fenster schließt nicht richtig?
 
nimm das Showmessage mal aus der Schleife raus :P

himitsu 20. Jul 2012 10:15

AW: ShowMessage Fenster schließt nicht richtig?
 
Ich empfehle dir auch, daß du lernst den Debugger zu nutzen,
denn da wäre dir sofort aufgefallen, daß ShowMessage immer wieder aufgerufen wird, womit es natürlich zwangsweise mehrfach angezeigt werden muß.

Und ja, ein gewisses "Code-Verständnis" hätte natürlich auch ohne Debuggen und Co. hier die Lösung gezeigt:
> Wenn man etwas in eine Schleife reinmacht, dann wird es eventuell (1) mehrmals ausgeführt.
(siehe Bummi Thomas, welcher das "Problem" bestimmt auch so "gesehn" hat)

1: Ausgenommen nach dem ersten Schleifendurchlauf ist Schluß, bzw. die Schleife wird überhaupt durchlaufen.


PS: Das eigentliche Problem ist
Delphi-Quellcode:
i
, denn das wird irgendwie nirgendwo hochgezählt. :zwinker:


Zitat:

Delphi-Quellcode:
while i < fileListBox1.Items.count do begin // alle Dateien in der Liste durchlaufen
  Memo2.Lines.LoadFromFile(fileListBox1.FileName); // aber immer wieder nur die aktuell selektierte Datei verwenden

Die beiden Codezeilen sind natürlich auch etwas wiedersprüchlich. :angle2:


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