![]() |
Problema con un Timer en tiempo de Ejecucion
Estoy creando una aplicacion y en una de las units, tengo puesto un timer que lo creo en tiempo de ejecucion, pero mi problema no es al crearle, es al asignarle un procedimiento en el evento OnTimer, que me da un error de incompatibilidad del tipo de dato, que el procedimiento no es del tipo tNotifyEvent, sino me equivoco.
Necesito que me digais o que me aconsejeis sobre xq me da el error. Gracias A todos! |
por que no nos pones el código y la definición del procedure que intentas asignarle así como el error exacto que te da?
|
error
El error que me da es el siguiente:
[Error] uAscensor.pas(73): Incompatible types: 'TNotifyEvent' and 'procedure, untyped pointer o untyped parameter' Gracias! |
perdon!
Este es el codigo que se me olvidaba. si necesitas que te ponga toda la unit dimelo que te lo pongo si esto no es suficiente.
constructor cAscensor.Crear(NumPlantas, PlantaActual, PlantaDestino: Integer; Grid: tStringGrid); begin inherited Create; self.NumPlantas := NumPlantas; self.PlantaActual := PlantaActual; self.PlantaDestino := PlantaDestino ; PanelInterno := cPanelInterno.Create ((self as cSujeto), Grid, NumPlantas); PanelInterno.parent := Grid; PanelInterno.BoundsRect := Grid.CellRect (0,NumPlantas - PlantaActual); PanelInterno.SetPisoSelected (NumPlantas - PlantaActual); self.Grid := Grid; Timer := tTimer.Create (Grid); Timer.Enabled := False; Timer.OnTimer := Llamar(PlantaDestino); Timer.Interval := 1000; end; procedure cAscensor.Llamar(Destino: Integer); begin If Destino <> PlantaActual then begin RegistrarInicioAscensor; RegistrarInicioPlanta (Destino); PlantaDestino := Destino; end; end; |
Bueno, sólo era necesario la manera en que construir el timer y la declaración del procedure :) Eso sí, podrías haberlo encerrado entre las etiquetas [ delphi ] y [ /delphi ] (sin espacios)
Referente a tu problema es que, si te fijas la declaración de un evento OnTimer es la siguiente:
Es decir, el parámetro que espera un objeto, no un integer como tu tienes. La variable que necesitas pasarle, podría ser una propiedad privada del objeto y así, desde dónde necesites (evento OnTimer) usarla Y la forma de asignar el evento sería algo así:
y la definición de Llamar...
Espero te sirva |
La franja horaria es GMT +2. Ahora son las 07:48:42. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi