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:
Código Delphi
[-]
procedure OnTimer(Sender: TObject);
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í:
Código Delphi
[-]
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;
Timer.Interval := 1000;
end;
y la definición de
Llamar...
Código Delphi
[-]
procedure Llamar(Sender: TObject);
Espero te sirva