Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-10-2008
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Duda con un array de Timers

Buenas a todos,

Tengo la siguiente pregunta: ¿es posible averiguar en un array de Timers qué elemento del array me ha generado el evento, es decir, si es el Timer que ocupa la posición 1 o el de la posición 2...?

Esto lo necesito sin usar el Tag del Timer ya que lo usaría para otra cosa.

Gracias...
Responder Con Cita
  #2  
Antiguo 15-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si todos llaman al mismo evento, basta con utilizar el parámetro Sender para saber qué Timer está haciendo la llamada.
PREGUNTA ¿Seguro que necesitas un array de Timers?

No te bastaría con un único Timer y diferentes Intervalos de tiempo para hacer diferentes cosas?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 15-10-2008
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 18
vejerf Va por buen camino
Gracias por tu respuesta Neftali, pero yo lo que necesito es saber la posición que ocupa en el array.

Necesito diferentes Timer y como mucho uno por cada elemento q tenga. Necesito actualizar una serie de elementos en función de un tiempo que me controlará estos Timer. No los tendré creado de inicio, sino que los crearé y liberaré conforme se vayan usando.
Responder Con Cita
  #4  
Antiguo 15-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Para la posición del array sólo se me ocurre que busques por TAG, porque la búsqueda secuencia, siempre será peor.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 15-10-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Se me ocurre que al momento de crearlos le des un nombre significativo, por ejemplo Timer+PosiciónenArray.

Código Delphi [-]
   ...
   ArrayTimer[Posicion] := TTimer.Create()
   TTimer(ArrayTimer[Posicion]).Name := 'Timer'+IntToStr(Posicion);
   ...


Luego en el evento OnTimer:

Código Delphi [-]
begin
   {Name = TimerNNN - PosicionEnArray = NNN}
   posicionEnArray := StrToInt(copy(TTimer(Sender).Name,6,length(TTimer(Sender).Name-5)));
   ...
end;
Responder Con Cita
  #6  
Antiguo 15-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hoal vejerf, yo también utilizaría la propiedad Tag, le asignas la misma posición en la que estas creando tu timer y en su evento OnTimer preguntar por su Tag que sería la posición.

Código Delphi [-]
   ArrayTimer[Posicion] := TTimer.Create(Self);
   ArrayTimer[Posicion].Tag := Posicion;
   .........
   ArrayTimer[Posicion].OnTimer := TimerE1;
 
procedure TForm1.TimerE1(Sender: TObject);
begin
 showmessage(IntToStr(TTimer(Sender).Tag));
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Duda con Record o Array Paulao Varios 2 23-08-2008 15:11:42
Duda con string i array adrall Varios 4 01-07-2008 03:29:17
duda: pasar array de estructuras entre forms distintos waremovil C++ Builder 9 04-12-2007 23:19:08
Timers b3nshi Varios 5 07-04-2005 01:48:40
Duda en utilizar 2 Timers para comunicacion paralelo ibstk Varios 2 05-08-2004 03:59:26


La franja horaria es GMT +2. Ahora son las 03:13:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi