Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
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 13-04-2004
[mateamargo] mateamargo is offline
Miembro Premium
 
Registrado: jul 2003
Posts: 82
Poder: 21
mateamargo Va por buen camino
Question Pasar parametros a un Form

Hola,
Tengo un form principal tipo menu, cuando ejecuto una opcion del mismo
hago lo siguiente:
Código:
form1.showmodal
quisiera pasarle parametros a este form1.
No pude entrar a la busqueda en el historico del foro porque la pagina me da error.
Y no quiero que sean parametros a pasar desde la linea de comandos para lo cual usaria :
Código:
paramstr[1],paramstr[2],etc
Desde ya muchas gracias
Claudio
Responder Con Cita
  #2  
Antiguo 13-04-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
En Form1 create un procedimiento que sea publico con los parámetros que necesites, y despues puedes llamarlo desde el form principal:

Código:
public
   procedure PasaParametros(const a:string; b:integer);

end;

implementation

Procedure Tform1.PasaParamatros(const a:string; b:integer);
begin
....
end;
Por supuesto tu serás el responsable de llamar a esta funcion despues de crear el Form1.

Espero te sirva. Saludos
Responder Con Cita
  #3  
Antiguo 13-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Otra opción sería redefiniendo el constructor de ese formulario o bien creando un segundo constructor

Código:
public
    constructor Create2(Aowner : TComponent; MisParametros: XXXX);

implementation

constructor TMiForm.Create2(Aowner : TComponent; MisParametros: XXXX);
begin
  // llamamos al create principal de la classe TForm
  inherited Create(Aowner);

  // Aquí podemos asignar esos parámetros a variables de la unit por ejemplo
end;
Responder Con Cita
  #4  
Antiguo 13-04-2004
[mateamargo] mateamargo is offline
Miembro Premium
 
Registrado: jul 2003
Posts: 82
Poder: 21
mateamargo Va por buen camino
Question Pasaje de parametros al form

Hola,
Te agradezco tu respuesta, yo ya la habia probado, el tema es que
cuando llamo al formulario
Código:
form1.showmodal
verifique en el create del formulario el parametro venia ok, pero en el activate del mismo me desaparecia el parametro, justamente en el activate yo queria ejecutar una compactacion de una base de datos pasada como parametro.
Tampoco tenía forma de cerrar el formulario.
Muchas Gracias
Claudio
Responder Con Cita
  #5  
Antiguo 13-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
A cual de las dos opciones te refieres, a la de Lepe o la mia?

En cualquiera de los casos.... has probado a debugear y ver donde pierde el valor la variable?
Responder Con Cita
  #6  
Antiguo 14-04-2004
[mateamargo] mateamargo is offline
Miembro Premium
 
Registrado: jul 2003
Posts: 82
Poder: 21
mateamargo Va por buen camino
Pasar parametros a un Form

Hola,
Lo probe con tu solucion (cadetil) y al debugear se pierde la variable en el evento activate del form.
Saludos
Responder Con Cita
  #7  
Antiguo 14-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
supongo que tendrás algo así

En negrita los cambios al ejemplo anterior
Código:
private
  MiVar1: string;
  MiVar2: string;
public
    constructor Create2(Aowner : TComponent; Var1, Var2: string);

implementation

constructor TMiForm.Create2(Aowner : TComponent; Var1, Var2: string);
begin
  // llamamos al create principal de la classe TForm
  inherited Create(Aowner);

  // Aquí podemos asignar esos parámetros a variables de la unit por ejemplo
  MiVar1 := Var1;
  MiVar2 := Var2;
end;
Con ésto no has de perder el valor de las variables a no ser que, desde algún lado, lo cambies tu explícitamente.

Fíjate en el detalle de que las variables son Privadas. Qué ganamos? Pues que, por descuido no modifiquemos el valor desde fuera de la Unit. Así que, si sigues perdiendo el valor en el OnActivate, sólo tendrás que buscar dentro de esta Unit a ver dónde asignas valores a estas variables

Espero te sirva
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 14:45:27.


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