Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Compartir variable entre Forms (https://www.clubdelphi.com/foros/showthread.php?t=59063)

MaMu 12-08-2008 02:16:38

Compartir variable entre Forms
 
Tengo una aplicacion con 2 formularios, el principal y uno secundario, lo que yo quiero, es tener una variable compartida, es decir, quiero que, cuando cierre el formulario secundario, este, le asigne un valor a la variable compartida, para que el formulario principal pueda tener ese valor.
Como puedo hacer esto?

Saludos y Gracias

dec 12-08-2008 02:20:00

Hola,

Puedes utilizar una variable "global" (declarada en la "interfaz") en una unidad que, a su vez, compartan los formularios. Algo como:

Código Delphi [-]
unit UGlobals;

interface

var
  ShareInformation: integer; 

implementation

end.

Luego, en tus formularios, podrías añadir dicha unidad, y contar con la variable "ShareInformation", en este caso. Al menos es una idea, ¿no? ;)

MaMu 12-08-2008 02:52:05

Asi lo hice, pero no me funciona.

Lo que intento hacer, es que, si yo cancelo (close) el formulario secundario (este lo active con ShowModal) quiero que se cierre toda la aplicación.
Probe con Application.Terminate pero solo me cierra el formulario secundario.

Alguna idea?

dec 12-08-2008 03:18:49

Hola,

Desde el primer formulario:

Código Delphi [-]
begin
  with TSecondFrm.Create(nil) do begin
    if (ShowModal() = mrCancel) then begin
      Self.Close();
    end;
  end;
end;

Algo así debería bastarte, ¿no?

MaMu 12-08-2008 03:31:25

Si, ahora lo que me esta costanto, es lo siguiente:

Yo abro un formulario secundario (ShowModal), desde el formulario principal. Lo que quiero es que cuando abra el formulario secundario, el principal se cierre, y que el formulario secundario pase a ser el formulario principal, rebuscado no? Necesito practicar el manejo de formularios.

Gracias

Caro 12-08-2008 05:12:27

Hola mamu, nose como se cambia en ejecución que otro formulario sea el principal, que yo sepa solo se hace eso en diseño. En vez de buscar cambiar tu formuario principal, porque no lo haces invisible al principal y cuando quieras cerrar el secundario, cierras el principal para que se cierre tu aplicación.

Saluditos

MaMu 16-08-2008 17:57:18

Es que tengo un form MDI, que tiene una Variable global "Mivariable:boolean".
En el OnCreate del MDIForm, asigno

Código Delphi [-]
 
Mivariable:=False;

En el MDIChild que creo (en el OnShow del MainMDIForm), inclui en el uses UMainMDIForm, con lo cual, accedo a la variable:

Código Delphi [-]
 
UMainMDIForm.Mivariable:=True;

Luego de una operacion, cierro la MDIChild, habiendo dado un valor a Mivariable.
Ahora, cuando continuo con las demas instrucciones del OnShow del MainMDIForm, no me toma el valor asignado a la variable Mivariable que habia puesto en el MDIChild

Código Delphi [-]
 
if Mivariable=True
   then ShowMessage('es True');

Que estoy haciendo mal?

Saludos


La franja horaria es GMT +2. Ahora son las 14:36:16.

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