Tach auch ...
Ich habe eine Schnellstartleiste programmiert
http://home.arcor.de/stefan.moka/launcher/Snap1.png
und möchte nun beim Start eine Versionsüberprüfung durchführen.
Dazu nutze ich folgende Funktion:
Delphi-Quellcode:
function LoadURL(
URL:
String):
String;
var IOpen, IURL: HINTERNET;
Read: Cardinal; Msg:
array[0..4096]
of Char;
begin Result := '
';
IOpen := InternetOpen('
GetIP', INTERNET_OPEN_TYPE_PRECONFIG, '
', '
', INTERNET_FLAG_NEED_FILE);
if IOpen <>
nil then try
IURL := InternetOpenUrl(IOpen, PAnsiChar(
URL),
nil, 0, INTERNET_FLAG_NO_UI
or INTERNET_FLAG_PRAGMA_NOCACHE
or INTERNET_FLAG_RELOAD, 0);
if IURL <>
nil then try
repeat
FillChar(Msg, SizeOf(Msg), 0);
if InternetReadFile(IURL, @Msg[0], Pred(SizeOf(Msg)),
Read)
then Result := Result + Msg
else Break;
until Read = 0;
finally InternetCloseHandle(IURL);
end;
finally InternetCloseHandle(IOpen);
end;
end;
Das klappt auch soweit sehr gut ...
Der Start meines Programmes verzögert sich jedoch weil so
eine Internet-Anfrage, je nach Leitung und Traffic schon mal
ins Stottern kommt.
Jetzt meine Frage: Wie müsste man die Funktion Thread-sicher
verpacken, damit ich, sagen wir nach 5 Sekunden das Ergebnis
aus meinem Hauptprogramm erfragen kann ?
Das Thread-Tutorial habe ich intus ... 2x sogar ... ist jedoch
nicht ganz einfach ... und entwickelt sich komplexer als erwartet.
Besten Dank für Eure Hilfe ...
SittingDuck