Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-08-2005
Avatar de Hugorr
Hugorr Hugorr is offline
Miembro
 
Registrado: jul 2005
Posts: 17
Poder: 0
Hugorr Va por buen camino
Angry Pasar formulario como paramentro

Buenas tardes Señores/as

Bueno tengo el siguiente problemilla quiero crear un funcion la que recibe dos parametros 1 es un string y otro es un objeto (Un formulario) y esta devuelve un booleano. Lo que quiero que me ayudasen es a como definir funciones para pasarle objetos y si me ponen un ejemplo pues maravilloso. o darme algun enlace dondo pueda obtener dicha informacion.


Espero haberme explicado bien...
__________________
Gracias por dedicar su valioso tiempo... '(^_^)'

Un saludo
Hugorr
Responder Con Cita
  #2  
Antiguo 24-08-2005
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
Hola:

Código Delphi [-]
function funcion(cadena:String;formulario:TForm):Boolean;
var
    resultado:Boolean;
begin
       ...........       
       result:=resultado;
end;

Saludos
Responder Con Cita
  #3  
Antiguo 24-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No tiene misterio. Igual que pasas parámetros de tipo "string", "integer" u otro tipo "simple", puedes pasar parámetros del tipo del formulario que prefieras. Como ejemplo mira la función siguiente, la cual mostrará el formulario cuyo tipo se le pase como parámetro, cuyo título estará determinado por el primero de los parámetros y el resultado dependerá del "ModalResult" del formulario en cuestión:

Código Delphi [-]
 function TForm1.MuestraForm(tituloForm: string; form: TForm2): boolean;
 begin
   form.Caption := tituloForm;
   Result := form.ShowModal = mrOk;
 end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 24-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
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
  #5  
Antiguo 24-08-2005
Avatar de Hugorr
Hugorr Hugorr is offline
Miembro
 
Registrado: jul 2005
Posts: 17
Poder: 0
Hugorr Va por buen camino
Duda resuelta

Muchas gracias a todos.

Este si que es un foro efectivo y rapido
__________________
Gracias por dedicar su valioso tiempo... '(^_^)'

Un saludo
Hugorr
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 10:31:39.


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