Einzelnen Beitrag anzeigen

Benutzerbild von Wuaegner
Wuaegner

Registriert seit: 8. Feb 2004
406 Beiträge
 
Delphi 6 Enterprise
 
#1

Bei For-Schleife und IdHttp.Post() verschwindet Label

  Alt 7. Aug 2005, 18:13
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.
Wuaegner
Gruß Flo
Unternehmensberatung
  Mit Zitat antworten Zitat