Einzelnen Beitrag anzeigen

Magier

Registriert seit: 2. Okt 2004
Ort: Bergisch Gladbach
39 Beiträge
 
Delphi 7 Personal
 
#4

Re: HTML Datei im Hintergrund runterladen

  Alt 4. Sep 2008, 00:02
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 = 'nichterreichbarthen
  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
  Mit Zitat antworten Zitat