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 = '
CheckServerStatus'
then
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.