Ver Mensaje Individual
  #4  
Antiguo 24-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Lo ideal es concretar el tipo de objeto se le está pasando:
Código Delphi [-]
function Uno(var NombreCliente:string; Ventana:TForm):Boolean;
function Uno(var NombreCliente:string; Ventana:TCustomForm):Boolean;

Algunas veces no es posible, así que usamos el ancestro más genérico:

Código Delphi [-]
function Uno(var NombreCliente:string; Ventana:Tcomponent):Boolean;

function Uno(var NombreCliente:string; Ventana:TObject):Boolean;
begin
// si sabemos que es un form podemos hacer un moldeado de tipos
TForm(Ventana).****
end;
los asteriscos puede ser cualquier propiedad o método que tenga esa ventana.

El único problema es que por error envies un Grid a esa rutina, en tiempo de compilación no obtendrás fallos, pero cuando llegue a TForm(Ventana), como en realidad es un grid, tendrás un fallo de acceso a memoria. Así que cuidadin con lo que haces .


¿Te suena de algo Sender:TObject? Es simplemente el Grid, TForm etc. , que está lanzando ese evento, y como es un evento genérico para todos las clases de delphi, se usa tambien como TObject.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita