www.pudn.com > pino3srv-src.zip > dbgthrd.pas
unit dbgthrd;
interface
uses Classes;
type TDbgThrd = class(TThread)
private
{ Private-Deklarationen }
protected
procedure Execute; override;
end;
implementation
{ Wichtig: Methoden und Eigenschaften eines Objekts in der VCL
können nur in einem Methodenaufruf mit SYNCHRONIZE
genutzt werden, z.B.
Synchronize(UpdateCaption);
und UpdateCaption könnte sein,
procedure TDbgThrd.UpdateCaption;
begin
Form1.Caption := 'Updated in einem Thread';
end; }
{ TDbgThrd }
uses Misc, SysUtils, ActUser, WinSock;
procedure TDbgThrd.Execute;
var
st:string;
i:Integer;
begin
FreeOnTerminate:=true;
repeat
Readln(st);
if st='ru' then for i:=0 to RegUsers.Count-1 do Writeln(i,' ',RegUsers[i]);
if st='rl' then for i:=0 to RoomList.Count-1 do Writeln(i,' ',RoomList[i]);
if st='au' then for i:=0 to ActUsers.Count-1 do Writeln(i,' ',ActUsers[i]);
if st='bu' then for i:=0 to OPKicked.Count-1 do Writeln(i,' ',FormatDateTime('hh:mm:ss',StrToFloat(OPKicked[i])));
until st='quit';
adm_server.ShutDown;
chatserver.ShutDown;
for i:=ActUsers.Count-1 downto 0 do TActUser(ActUsers.Objects[i]).Close;
WSACleanup;
Halt;
end;
begin
TDbgThrd.Create(false);
end.