Moin moin,
Delphi-Quellcode:
type
TData = Record
tmrDestroy : TTimer;
end;
Data = ^TData;
DummyList ist einfach nur TList...und KillDummy ist das OnTimer Event von tmrDestroy.
Delphi-Quellcode:
procedure TDummy.KillDummy(Sender: TObject);
var i: integer;
pDummy: Data;
begin
for i := 0 to DummyList.Count-1 do
begin
pDummy := DummyList[i];
if Sender = pDummy^.tmrDestroy then
begin
pDummy^.tmrDestroy.Enabled := false;
pDummy^.tmrDestroy.Free;
DummyList.Delete(DummyList.IndexOf(pDummy));
Dispose(pDummy);
end;
end;
end;
Das Problem ist jetzt, wie kann ich herausfinden, welcher Pointer das OnTimer Event aufgerufen hat. Bis jetzt klappt es ganz gut, WENN es sich nur um einen Pointer handelt. Sobald aber mehrere in der Liste sind kommt ein Listindex out of bounds...da ja ein Pointer schon gelöscht wurde.
Also wie könnte man herausbekommen, welcher Pointer in der Liste DummyList das onTimer Event aufgerufen hat?
mfg
NeoXan