PDA

Ver la Versión Completa : Problemas con formulario MDI


Kannon
30-12-2013, 19:51:50
Hola a todos......

Tengo algunas dudas e inconvenientes en los que les agradecería mucho su ayuda. Estoy trabajando en una la siguiente aplicación:

http://i943.photobucket.com/albums/ad274/Carlos_Jaramillo_Corrales/Sintiacutetulo_zps530d692d.png

Resulta que la ventana de "Administración Universitaria" fue declarada como fsMDIForm mientras que "Gestión Estudiantil" fue declarada fsMDIChild, pero me gustaría que al momento de dar clic en el mainmenu opción "Estudiantes" como se puede ver en la foto, sea cuando se abra la ventana de "Gestión Estudiantil" lo cual no logro hacer pues declaro esa venta con la opción : visible->false pero aun así cuando compilo el principal se abre automáticamente la de "Gestión Estudiantil" sin haber presionado la opción en el mainmenu "Estudiantes".

Caminante
30-12-2013, 20:25:37
Hola

Ya quitaste esa ventana de la lista auto-create forms??

Saludos

Kannon
30-12-2013, 20:28:54
Hola

Ya quitaste esa ventana de la lista auto-create forms??

Saludos

No se exactamente en que parte hacerlo.

Caminante
30-12-2013, 21:35:38
En el menu project / options / en el arbol de la izquierda selecciona el que dice forms. Te mostrara dos listas una que dice autocreate forms y otra available forms. Mueve los forms que no se crearan automaticamente a la segunda lista.

Kannon
30-12-2013, 22:15:09
En el menu project / options / en el arbol de la izquierda selecciona el que dice forms. Te mostrara dos listas una que dice autocreate forms y otra available forms. Mueve los forms que no se crearan automaticamente a la segunda lista.

Aunque tu ayuda me sirvio para que al momento de abrir la aplicacion principal no se abra la ventana de gestion estudiantil, cuando presiono estudiantes para que se abra la ventana ( lo hago de la siguiente manera: estudianteS->show(); ) me pone este error que me deja aun mas perdido :/

ht(tp://i943.photobucket.com/albums/ad274/Carlos_Jaramillo_Corrales/Sintiacutetulo_zps2cb84533.png

Caminante
30-12-2013, 22:45:59
Debes crear la ventana para poder trabajar con ella:


Form2:=TForm2.create(self);

Y para asegurarte de destruir la ventana al ya no usarla

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree
end;

Espero te sea util

Saludos

Kannon
31-12-2013, 00:05:07
Debes crear la ventana para poder trabajar con ella:


Form2:=TForm2.create(self);

Y para asegurarte de destruir la ventana al ya no usarla

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree
end;

Espero te sea util

Saludos

De acuerdo a la ayuda que me has brindado, intente crear la ventana de la forma que me indicaste que para mi caso seria:


estudianteS:=TestudianteS.create(self);

Pero me da sintax error, tal vez interfiera en algo el hecho de que estoy usando las versión Delphi XE5?

ecfisa
31-12-2013, 03:09:15
Hola Kannon.

estudianteS:=TestudianteS.create(self);

Pero me da sintax error...

Y es esperable, ya que según veo estas trabajando en C++ Builder.

Llamada para crear/mostrar estudianteS:

{
if (estudianteS == NULL) // si aún no fué creado...
estudianteS = new TestudianteS(this); // crearlo
else { // si no, traerlo al frente
estudianteS->WindowState = wsNormal;
estudianteS->BringToFront();
}
...

Si deseas que no quede minimizado al cerrar (acción por defecto de los forms MDIChild) agrega:

void __fastcall TestudianteS::FormClose(TObject *Sender,
TCloseAction &Action)
{
// caFree cierra el form y libera la memoria asignada
Action = caFree;
}


Saludos :)