Delphi - Crear una variable accesible en todos formularios

 
Vista:

Crear una variable accesible en todos formularios

Publicado por Bicugo (17 intervenciones) el 16/12/2003 12:56:53
Hola, me gustaría saber como se crea una variable que sea accesible en todos los formularios del programa, ya que lo que quiero hacer es que en un array de componentes, cuando pinche uno, la pagina que me cargue sea la de dicho componente y no la de otro.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Crear una variable accesible en todos formulari

Publicado por Fer (269 intervenciones) el 16/12/2003 17:59:01
Hay formas de hacerlo. Una es crear una unit que contenga la declaración de la variable y utilizarlas desde todas las demás units de la aplicación pero...

... si necesitas utilizar variables globales, es que estás haciendo algo mal.

Esta es una de las máximas de la programación a las que también pertenece aquella que dice:

si necesitas utilizar saltos incondicionales, es que estás haciendo algo mal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear una variable accesible en todos formulari

Publicado por Delfino (1216 intervenciones) el 16/12/2003 21:30:32
En la seccion Var donde esta declarada la form (var form : Tform) puedes declarar la variable global q quieres.
pero como te dice el colega, las variables globales no son de las tecnicas recomendables en la programacion, crean muchos problemas de access violation por el acceso simultaneo y tb si se corrmpe su valor afecta a todo el programa..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear una variable accesible en todos formulari

Publicado por Bicugo (17 intervenciones) el 17/12/2003 10:29:09
Es que noveo otra forma de hacerlo.
Mi programa hace lo siguiente:

Se te carga un array de elementos, que cada uno de ellos tiene un botón que te lleva a otro formulario.

Todos los formularios son iguales, solo que cambia los datos mostrados dependiendo de que elemento has pulsado.

Si teneris otra opción que no sea variables globales y sea más fiable, me gustaría que me lo dijeseis.

Gracias de todos modos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear una variable accesible en todos formulari

Publicado por Delfino (1216 intervenciones) el 18/12/2003 21:30:47
No he entendido muy bien lo q quieres hacer, pero me suena a q te solucionaria mucho el TFrame, si quieres cargar formularios segun condiciones y q son parecidos, puedes crear un TFrame basico y luego cargas dinamicamente cambiando lo q quieres en el frame heredado, el TFrame es un componente muy potente y q puede facilitar muchas cosas pero muchos no lo conocen y no quieren molestarse en conocerle, aunque conocerle es un encanto te lo puedo asegurar :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear una variable accesible en todos formulari

Publicado por Bicugo (17 intervenciones) el 19/12/2003 12:13:21
No creo que el TFrame sirva.

LO que tengo es un array de botones que va aumentando progresivamente. Cuando pulso uno de ellos me lleva a una ventana nueva, en la cual dependiendo del boton pulsado te muestra unos valores o otros, pero la ventana es la misma para todos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear una variable accesible en todos formulari

Publicado por Delfino (1216 intervenciones) el 22/12/2003 13:10:08
En este caso creas el form en tiempo de ejecucion dependiendo de un valor del boton(caption, tag etc.) y luego la destruyes..
if button1.tag = 1 then
begin
if not assigned(form2) then form2.create(self);
form2.valor := ...;
...
form2.show;
(o con case button.tag of ...)
en el evento onclose del form tienes q poner los siguiente:
action := caFree;
form2 := nil;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear una variable accesible en todos formulari

Publicado por Alex (47 intervenciones) el 21/12/2003 04:24:27
Si dices que son varios formularios por que no intentas trabajar con una ventana padre donde declares la variable global y los demas formularios los declaras como ventanas hijas que son los que llamarias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear una variable accesible en todos formulari

Publicado por Bicugo (17 intervenciones) el 22/12/2003 13:53:30
¿ Y como se hace eso de ventana padre y ventana hija ?
Es que veo que eso puede ser una buena idea, aunque ¿ una hija de una ventana piede ser padre de otra ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear una variable accesible en todos formulari

Publicado por Delfino (1216 intervenciones) el 22/12/2003 14:04:48
creas una form y en el formstyle le das mdiform, la segunda form le das mdichild, al ejecucion ves q una form esta incrustada dentro de otro tipo Access, mirc32 etc..a la form padre pueden pertenecer muchas forms hijas q se pueden crear automaticamente por delphi o puedes crearlos tu mismo y luego liberarlos, la segunda opcion es mejor..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar