Einzelnen Beitrag anzeigen

Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Thread hängt wenn Listview Eintrag bekommt

  Alt 18. Jul 2008, 13:19
Ich steige da immer noch nicht durch. Habe die Variabeln gesetzt aber ich kann nicht darauf zugreifen.

Thread Unit:
Delphi-Quellcode:
type
  MyThread = class(TThread)
  private
    { Private-Deklarationen }
  protected
    procedure Execute; override;
    procedure CheckServerStatus;
  public
    { Public-Deklarationen }
    art : String;
    status : String;
    lvid : Integer;
  end;
...
procedure MyThread.Execute;
begin
 CoInitialize(nil);
 try
   if art = 'CheckServerStatusthen
     CheckServerStatus;
 except
    on e: exception do begin
      // mache hier irgendetwas mit dem Fehler.
    end;
 end;
 CoUnInitialize();
end;

procedure MyThread.CheckServerStatus;
begin
 if IsHostAlive(Server) = True then
   status := '1//Server Online
 else
   status := '2'; //Server Online
end;
Meine Main Unit:
Delphi-Quellcode:
procedure Tfrm_main.OnThreadTerminate(Sender: TObject);
begin
 ShowMessage(MyThread.status); // Fehler: Methodenbezeichner erwartet. Welcher soll das sein?
end;

procedure Tfrm_main.CheckServerStatus;
var
 i : Integer;
 Thread : MyThread;
begin
 for i := 0 to lv_server.Items.Count - 1 do
 begin
   Thread := MyThread.Create(True);
   Thread.art := 'CheckServerStatus';
   Thread.lvid := i;
   Thread.server := lv_server.Items[i].Caption;
   Thread.FreeOnTerminate := True;
   Thread.OnTerminate := OnThreadTerminate;
   Thread.Resume;
 end;
 lbl_overview_servercheck.Caption := FormatDateTime('dd. mmmm yyyy hh:nn:ss', now);
end;
Fehler beim Kompilieren. Siehe OnThreadTerminate Prozedure.
  Mit Zitat antworten Zitat