Hallo,
ich dachte Timer arbeiten wie Threat's. SetTimer, Killtimer? wie reagiere ich da auf timer events? mal in der hilgfe gucken, hoffentlich steht da was.
btw:
Delphi-Quellcode:
type
TClientInfo = record
Address: string;
Timer: TTimer;
end;
...
var
Form1: TForm1;
ClientInfo: Array of TClientInfo;
...
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
var
timer: TTimer;
begin
SetLength(ClientInfo, length(ClientInfo)+1);
ClientInfo[high(ClientInfo)].Address := Socket.RemoteAddress;
timer := TTimer.Create(nil);
with timer do
begin
Interval := 30000;
OnTimer := TimerEvent;
enabled := true;
end;
listbox1.Items.Add(Socket.RemoteAddress);
end;
procedure TForm1.TimerEvent(Sender: TObject);
var
i: integer;
begin
ServerSocket1.Socket.Connections[0].Close;
ClientInfo[0].Timer.Free;
for i := 0 to high(ClientInfo)-1 do
ClientInfo[i] := ClientInfo[i+1];
SetLength(ClientInfo, high(ClientInfo)-1);
end;
wenn ich jetzt z.b mit dem IE 2mal zur gleichen zeit meine
ip + port aufrufe, stehen 2 ips (meine) in der listbox, also funktioniert noch alles normal, aber wenn das ontimer event auftritt krieg ich eine zugriffsverletzung, aber wieso?