Ja, genau so hab ich es vorher gemacht.
Ich habe das Ganze nun umgesetzt. Es besteht hier aber weiter das Problem, dass das Programm nur regiaert, wenn ich im (synchronisierten) work-Update-Event ProccessMessages ausführe, sonst gar nicht. Ich habe das so wie oben vorgeschlagen angelegt, also im onWork wird eine Prozedur synchronisiert aufgerufen, die die Progresbars setzt.
Liegt es vielleicht daran, dass ich das Uploaden als Funktion anlege, da ich wissen muss, ob er fehlgeschlagen ist? Hier ein bisschen Code:
Delphi-Quellcode:
function TUploadThread.DoUpload(
URL:
String; Stream: TStream; RCT:
String;
out AW:
String): Boolean;
begin
IdHTTPC.Request.ContentType := RCT;
result := true;
try
AW := IdHTTPC.Post(
URL, Stream);
except
result := false;
end;
end;
// Aufruf in einer "normalen" Prozedur außerhalb des Threads
if (UploadThread.DoUpload(DURL, Stream, RCT, AW))
then
LogFeld.Items.Add('
Erfolgreich.')
else
[Fehlerbehandlung]
ansonsten wenigstens keine AVs oder sonstige Probleme