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.