Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Delphi para la web (https://www.clubdelphi.com/foros/forumdisplay.php?f=51)
-   -   Cambiar Formulario Principal en Unigui (https://www.clubdelphi.com/foros/showthread.php?t=82445)

Neeruu 07-03-2013 14:33:02

Cambiar Formulario Principal en Unigui
 
Hola a todos...

Estoy desarrollando una aplicación en Unigui, y por esas cosas de la vida, necesito que mi formulario principal (el que se abre primero) sea otro... o sea necesito cambiar mi formulario principal...

Donde puedo realizar esto?

Aclaro que todos los formularios que tiene mi aplicación son del tipo Aplication Form...
Esto esta bien? o solo el principal debería de ser Aplication Form y los demas del tipo Free Form?

Saluda Atte Neeruu!!!:)

fremen 01-04-2013 23:56:07

Hola

Es un poco complicado darte una solución usando TUniForm, lo mejor es usar Frame.

Deja el formulario principal vació y cuando sepas que Frame debes mostrar, créalo y asocialo al formulario principal.

Neeruu 03-04-2013 00:20:37

Y aunque sea complicado... podrías explicar como se puede hacer?

fremen 03-04-2013 02:06:07

Hola

Mi respuesta fue un poco precipitada, no se puede cambiar el formulario de inicio una vez que el ejecutable esta arrancado (o la dll). Se puede cambiar mientras se ejecutan las secciones initialization de las unidades, pero una vez ejecutado dichas secciones no se puede hacer.

El problema está en esta línea:

initialization
RegisterMainFormClass(TMainForm);

Inicialmente pensé que no era necesario llamar a RegisterMainFormClass en la sección Initialización de la unidad, de hay que te dijera que si que se podía, pero una vez que me he puesto a hacer pruebas, he visto que estaba equivocado.

Neeruu 03-04-2013 07:09:40

Cita:

Empezado por fremen (Mensaje 457967)
Hola

Mi respuesta fue un poco precipitada, no se puede cambiar el formulario de inicio una vez que el ejecutable esta arrancado (o la dll). Se puede cambiar mientras se ejecutan las secciones initialization de las unidades, pero una vez ejecutado dichas secciones no se puede hacer.

Podrías explicarme a que te refieres con:

Cita:

Se puede cambiar mientras se ejecutan las secciones initialization de las unidades, pero una vez ejecutado dichas secciones no se puede hacer

fremen 04-04-2013 02:31:48

Unigui sabe cual es el formulario principal a través de esta sentencia:

RegisterMainFormClass(UNA_CLASE_HEREDADA_DE_TUniForm);

Dicha sentencia debe de ser llamada en alguna sección initialization. Una vez arrancado el "sistema", dicha sentencia ya no funciona y Unigui devuelve una excepción cuando intenta arrancar el formulario principal.

Por ejemplo.

Código Delphi [-]
Var
  ArrancaForm1: Boolean;       // Es una variable global 

...
  unit 1
  ...
  type 
   TFormulario1 = Class(TuniForm)
  ...

  initialization
    if ArrancaForm1 then
      RegisterMainFormClass(TFormulario1);
  end.
...
  unit 2
  ...
  type 
   TFormulario2 = Class(TuniForm)
  ...

  initialization
    if not ArrancaForm1 then
      RegisterMainFormClass(TFormulario2);
  end.

De esta forma puedes cambiar el formulario principal, pero SOLO en el arranque del sistema. Si existiera UnRegisterMainFormClass, seguramente se podría hacer en cualquier momento, pero Unigui no incorpora dicha funciona.

Espero haberme explicado :)

Neeruu 05-04-2013 00:32:47

No lo probé pero pregunto....

Si esta linea es la encargada de registrar la ventana principal

Cita:

RegisterMainFormClass(TFormulario1);
No seria suficiente poner acá el formulario que quiero que se abra como principal en tiempo de diseño y listo?

fremen 05-04-2013 00:58:46

En tiempo de diseño lo puedes hacer, pero que sentido tiene ?? lo interesante es hacerlo en tiempo de ejecución.

Neeruu 05-04-2013 01:07:21

jajajaja....

En realidad mi pregunta surgió porque empece por una parte del proyecto.... luego mi formulario principal cambio y no supe como hacer para que mi nuevo formulario principal se muestre primero....

fremen 05-04-2013 12:31:43

La próxima vez di eso en el primer mensaje y no tenemos que estar como el ratón y el gato :) :)

:)

ASAPLTDA 30-04-2013 18:02:53

Diferencias entre Aplication Form y tipo Free Form
 
Cita:

Empezado por Neeruu (Mensaje 456174)
Hola a todos...
Aclaro que todos los formularios que tiene mi aplicación son del tipo Aplication Form...
Esto esta bien? o solo el principal debería de ser Aplication Form y los demas del tipo Free Form?
Saluda Atte Neeruu!!!:)

Hola nos podrias explicar la diferencia entre ambas?
Gracias


La franja horaria es GMT +2. Ahora son las 01:56:20.

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