Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bei For-Schleife und IdHttp.Post() verschwindet Label (https://www.delphipraxis.net/51170-bei-schleife-und-idhttp-post-verschwindet-label.html)

Wuaegner 7. Aug 2005 18:13


Bei For-Schleife und IdHttp.Post() verschwindet Label
 
Bei meinem Code, möchte ich daten aus einer StringList an ein PHP-Script senden und nach jedem IdHTTP.Post geht meine ProgressBar1 einen Step weiter und es soll die Caption von dem Label WaitForm.LStatus verändert werden. Das Label wird aber gar nicht angezeigt. Ohne Schleife schon, also hab ich kein visible o.Ä. vergessen.
Delphi-Quellcode:
procedure TForm1.HighscoreInternetClick(Sender: TObject);
var
 PostDataStream : TStringStream;
 ParamData : TStringStream;
 s: string; // name+ punkte
 highs: TStringList;
 i: integer;
begin
 WaitForm.Visible:= true;

 {Alle privaten Plätze werden gesendet}

 PostDataStream := TStringStream.Create('');
 ParamData := TStringStream.Create('');
 ParamData.WriteString('');

 TestEngine.Highscoreladen('highscore.dat'); // Private Highscore laden

 for i:= 0 to 8 do   // alle neun Plätze werden gesendet
 begin
  // Status wird angezeigt

  WaitForm.LStatus.Caption:= 'Sende Highscoreplatz Nr.'+ IntToStr(i+1);

  s:= TestEngine.FHighscorePrivat.Strings[i]; // 1. -9. Platz

  s:= StringReplace(s,' ','%20',[rfReplaceAll,rfIgnoreCase]); // Leerzeichen mit %20 ersetzen

  // name + punke an PHP Script senden
 
  IdHTTP1.Post('domain.de/highscore.php?s='+s , ParamData, PostDataStream);

  WaitForm.ProgressBar1.StepIt;
  WaitForm.LStatus.Caption:= 'Sende Highscoreplatz Nr.'+ IntToStr(i+1)+'...erfolgreich';
 end;

 ParamData.Free;
 PostDataStream.Free;

 {Neue Highscore auf PC gespeichert}
 highs:= TStringList.Create;

  // setze status
 WaitForm.LStatus.Caption:= 'Lade neue Highscore herunter...';

  highs.Text:= IdHTTP1.Get('domain.de/highscore.dat');
 try
  highs.SaveToFile(ExtractFilePath(Application.ExeName)+'highscore_net.dat');

   WaitForm.LStatus.Caption:= 'Lade neue Highscore herunter...erfolgreich';
   WaitForm.ProgressBar1.StepIt;
 finally
  highs.Free;
 end;

 {Internethighscore anzeigen}
 TestEngine.ZeigeHighscore('highscore_net.dat');

 WaitForm.LStatus.Caption:= 'Bereit...';
 WaitForm.ProgressBar1.Step:= 0;
 WaitForm.Visible:= false;
end;
Mit einer Statusbar statt einem Label passiert dasselbe, nur dass sie angezeigt wird aber ohne Caption.

marabu 7. Aug 2005 18:38

Re: Bei For-Schleife und IdHttp.Post() verschwindet Label
 
Hallo Flo,

wenn du in der Schleife die windows message pump mit "Application.ProcessMessages" in Gang hältst und der Fehler bleibt, dann melde dich wieder.

Grüße vom marabu

Wuaegner 7. Aug 2005 18:46

Re: Bei For-Schleife und IdHttp.Post() verschwindet Label
 
:wall: Hätt ich auch selber drauf kommen können,
DANKE :thumb:


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