Yo usaría la opción de
Caro, es la más prolija. Ahora, el que uses el Tag para otra cosa no es realmente un impedimento, basta añadirle un poco de imaginación al asunto
. La propiedad Tag es un entero y, como tal, puede hacer las veces de apuntador, de manera que puedes definirte una estructura de datos con toda la información que requieras asociar al timer:
Código Delphi
[-]
type
PTimerInfo = ^TTimerInfo;
TTimerInfo = record
Indice: Integer;
end;
Para asociar una de estas estructuras al timer:
Código Delphi
[-]
var
P: PTimerInfo;
begin
New(P);
P.Indice := 84;
Timer84.Tag := Integer(P);
end;
Para usar la información contenida en el tag:
Código Delphi
[-]
var
P: PTimerInfo;
begin
P := PTimerInfo(Timer84.Tag);
ShowMessage(IntToStr(P.Indice));
end;
Y para liberar la memoria:
Código Delphi
[-]
Dispose(PTimerInfo(Timer84.Tag));
Si te fijas, de hecho, en TTimerInfo puedes incluso guardar directamente la referencia al elemento que quieres actualizar, sin necesidad del índice.
// Saludos