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.