danke für die schnellen Antworten.
Sowas wie ein eigenen Thread zu machen habe ich mir auch gedacht, nur wusste ich nicht wie das heißt (geschweige denn funktioniert).
Ich hab das ganze aber mit einem Tutorial auf die reihe bkommen und es funktioniert. Aber ich habe noch ein wenig das gefühl dass es ziemlich unschön gemacht wurde.
das hier ist die Procedure in dem anderen Thread wo die Datei aus dem Inet abgerufen wird. Allerdings werden da dann auch in der Form1 die Komponenten angesprochen und je nach Version eingefärbt und beschriftet. Weil in der Procedure in der Unit1 diese Sachen aus dem thread auszuwerten geht ja nicht, da das ja heißen würde dass das Programm wieder hängt. Wäre es eine Idee in der
Unit 1 eine Procedure zu machen dass das Ergebnis aus dem Thread verarbeitet? ich hoffe ihr versteht mich.
ach und ist das mit self.free am ende eine schöne sache? weil irgendwie muss ich den thread ja wieder freigeben aber ich wusste keine bessere stelle.
Delphi-Quellcode:
procedure TUpdateThread.Execute;
var
get_version: string;
begin
//auf Updates checken
try
get_version :=
GetHTML(adresse);
except
end;
if get_version = 'nichterreichbar' then
begin
form1.panel2.Color := clBtnFace;
form1.panel2.Caption := 'Der Server ist nicht erreichbar';
form1.panel2.Cursor := crdefault;
end
else if get_version = version then
begin
form1.panel2.Color := $002CF321;
form1.panel2.Caption := 'EasyLanguage ist auf dem neusten Stand';
form1.panel2.Cursor := crdefault;
end
else
begin
form1.panel2.Color := $005B5BEA;
form1.panel2.Caption := 'Aktuelle Version: ' + get_version;
form1.panel2.Cursor := crhandpoint;
if MessageDlg('Es ist eine neue Version von EasyLanguage verfügbar.'+#10#13+'Möchten Sie jetzt die Internet Seite aufrufen um die neue Version herunterzuladen?', mtConfirmation,
[mbYes, mbNo], 0) = idYes then
ShellExecute(Application.Handle, 'open',
PChar('http://www.manzanaloca.de/easylanguage/'),
nil,
nil, sw_ShowNormal);
end;
self.Free;
end;
viele grüße
magier