Formularios anidados

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
jamaro
Hacker del Foro
Mensajes: 253
Registrado: 03 Nov 2010, 23:04

Formularios anidados

Mensaje por jamaro »

Hola a todos:

Sigo con mi proyecto de migrar una base de datos de MS-Access a Autoit+SQLite (luego vendrán más si se me da bien) y me sigue surgiendo dudas de planteamiento.
Superado, gracias al foro, el comienzo del uso de SQLite desde Autoit, ahora la duda está en los formularios.

Hasta ahora todo lo que he hecho ha sido con un único formulario, y a lo sumo, pestañas que me ayudaban a organizarlos. Siempre he intentado seguir un criterio para el nombre de los controles, poniendo un prefijo:
$e_nombre: Para etiquetas
$b_nombre: Para botones
$i_nombre: Para "inputs"
$c_nombre: Para "combo box"
$l_nombre: Para listas
....

Pero como en el proyecto de migración que estoy empezando, preveo varios formularios (p.e.: un formulario para cada tabla de la base de datos que deseo editar/crear), el número de controles será muy grande, y en muchas ocasiones el nombre del control sería repetido (al menos hasta ahora en Visual Basic de Access lo era).
A ver si me explico, en Visual Basic, al control es fácil llamarlo anteponiendo el nombre del formulario:

Form1.Botón_Aceptar
Form2.Botón_Aceptar
Form3.Botón_Aceptar
....

Con Autoit, por lo que sé y he podido leer, no es posible hacerlo así, y sería necesario crear un nombre distinto para cada control de cada formulario. El botón "Aceptar" por ejemplo, aparecerá en casi todos los formularios y muchas veces, los formularios estarán anidados.

He buscado en el foro y no he encontrado nada al respecto. En el foro inglés encontré estos hilos:
http://www.autoitscript.com/forum/topic ... 96-part-1/
http://www.autoitscript.com/forum/topic ... t-part-ii/

Las preguntas al foro son las siguientes:
¿Os parece adecuado el método que explican ahí?
¿utilizáis otro método más sencillo?
¿algún "truco"?

Un saludo.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Formularios anidados

Mensaje por Chefito »

Hombre, eso es un tema que va con cada uno y algo con lo que quieras hacer.
Si te aclaras más con nombres fijos....ejemplo btOKGui1, btOKGui2, etc o cosas paracidas, pues hazlo así. Recuerda que debes poner nombres descriptivos para saber que contienen esas variables.

También está muy bien el utilizar matrices de variables (arrays) para estas cosas, sobre todo si son muchas con las mismas propiedades. Esto tiene ventajas, y es que puedes tratarlas a todas a la vez con un simple bucle (ejemplo for.......next).
La única pega que se le puede poner a este método es que el nombre de la variable es igual para todos los objetos. Debes guiarte mucho por el índice del array. Pero si enlazas el índice del array con por ejemplo el número del gui (form) no debes tener problemas para identificar a que form pertenece cada objeto :smt023 .

Solamente busca la que más te aclare y la que más facil te haga el código.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Formularios anidados

Mensaje por Ximorro »

Coincido que con las matrices al final va a ser tan engorroso el acceso a base de índices que no es tanta ventaja tenerlo tan ordenadito...
Probablemente lo más fácil será que le pongas también un prefijo a los nombres que indique el formulario: $F1btnAceptar, $F2btnAceptar, etc.

A veces podrás repetir variables en formularios simples que puedas manejar en una función (probablemente no los creas todos en el código Global), en ese caso las variables serán locales y no colisionarán con otras. Eso funciona si no tienes que tener varios formularios abiertos A LA VEZ con variables con nombres compartidos...

De todas maneras en AutoIT es un poco rollo manejar varios formularios abiertos a la vez, así que si puedes evitarlo podrás reutilizar muchos nombres, pues se irán reasignando según se vayan creando y destruyendo formularios.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
jamaro
Hacker del Foro
Mensajes: 253
Registrado: 03 Nov 2010, 23:04

Re: Formularios anidados

Mensaje por jamaro »

Hola:

Creo que seguiré vuestros consejos, y de momento intentaré trabajar con nombres tipo $For1..., $For2...

No he trabajado nunca con formularios anidados, y estoy empezando a echar un vistazo a los "parent" y "child"....

Seguiré preguntando ;-)

Gracias
Responder