![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Pasar parametros a una ventana
Hola a todos:
Mi Duda es la siguiente, en delphi siempre (no he visto otra forma) se pasan variables de un formulario a otro de la siguiente manera.
Es decir en el evento FormActivate estamos leyendos variables de otra parte, que para mí está malísimo ya que las ventanas deben ser independientes unas de otros o sino se pierde en gran medida la reutilización de objetos. Mi pregunta es, ¿existe una forma mas elegante de hacer esto?. En otros lenguajes puedes pasar variables u estructuras completas entre una ventana y otra ya que la opción de abrir un ventana permite pasar parámetros, en delphi no he visto hasta el momento nada de esto Hasta Luego -
__________________
No todo es como parece ser... |
|
#2
|
||||
|
||||
|
Hola:
Pido disculpa, no me he dado cuenta y posteé este mensaje en este apartado, pido por favor a un moderador que lo mueva a su sitio corresponiente, gracias ![]()
__________________
No todo es como parece ser... |
|
#3
|
||||
|
||||
|
Código Delphi [-]//defines: constructor create(aOwner : TComponent; const prm : string); reintroduce;
//implementas Código Delphi [-]constructor TMiForma.create(aOwner : TComponent; const prm : string); begin inherited create(aOwner); fPrm := ''; end; //y llamas Código Delphi [-]x := TMiForma.create(application.mainForm, 'hola');
__________________
self.free; |
|
#4
|
||||
|
||||
|
Hola:
Gracias, está buena la idea, solo tengo una duda con el siguiente código
Si es fPrm el parametro prm, no deja asignarle absolutamente nada ya que es una constante Hasta luego -
__________________
No todo es como parece ser... |
|
#5
|
|||
|
|||
|
Hola,
Lo que usualmente yo hago es lo siguiente. En toda ventana nueva que estoy creando, agrego un metodo publico llamado execute(parametro1,parametro2,parametro3); El execute contiene realmente el control ventana, ejemplo
De esta manera se evita la MALA costumbre de poner codigo en el OnShow, en el OnActivate. Inclusive se puede controlar lo que pasa en el OnCreate. Luego desde cualquier otra ventana yo ejecuto
Espero que sirva. ![]() Última edición por dec fecha: 29-10-2006 a las 11:34:16. |
|
#6
|
||||
|
||||
|
Gracias a ambos, he resuelto el problema...
![]()
__________________
No todo es como parece ser... |
|
#7
|
||||
|
||||
|
Yo propongo otra cosa, de la misma índole, pero en otro sentido:
Ventajas: - Si ahora necesitamos añadir otro parámetro más, no hay necesidad de modificar la declaración del procedimiento Execute, es decir modificar los parámetros de entrada que necesita, simplemente se añade una propiedad más, modificas internamente el método Execute y listo. Normalmente no tienes que modificar el programa que hace uso de la clase. - Podemos saber los valores antiguos y nuevos de cada parámetro, como ya dije, para inicializar o liberar recursos. - Su uso es más parecido a la VCL, por tanto en un futuro será intuitivo su uso. ¿el TQuery lleva parámetros en su método Open(sql: string)?, o por ejemplo, ¿el TOpenDialog en su método Execute?, pues por eso mismo. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 30-10-2006 a las 11:01:10. |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Pasar parametros.... | Coco_jac | SQL | 2 | 02-09-2006 04:28:16 |
| Abrir nueva ventana y pasar parametros | Coco_jac | PHP | 2 | 25-08-2006 17:14:16 |
| Pasar parametros a IBdataSet | digital | Firebird e Interbase | 3 | 13-07-2004 08:39:11 |
| como pasar parametros... | hook | SQL | 13 | 11-05-2004 19:24:14 |
| Pasar parametros a ADOQUERY | JODELSA | Conexión con bases de datos | 1 | 04-09-2003 23:47:36 |
|