Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con MDI (https://www.clubdelphi.com/foros/showthread.php?t=72672)

ivantj24 04-03-2011 19:54:03

Problema con MDI
 
Hola que tal, de nuevo con un problema mas :S:S:S ahora al crear las aplicaciones MDI. lo que pasa es que al momento de abrir una ventana MDI todo normal la abre en la parte superior izquierda, y todo bien, pero cuando cierro la misma ventana y la vuelvo a abrir se recorre como si fuera un escalon, osea se baja un poco, se recorre de izquierda y hacia abajo, si la abro muchas veces se va recorriendo de esta misma forma, abajo y hacia la derecha, eso es por que tengo por el momento solo una ventana y la abro y cierro y con eso me di cuenta de ese detalle.

Pero ahora estoy disponiendome a crear minimo 10 ventanas mas, y si por cada una se abren minimo 2 veces, entonces las ventanas se recorrerian demasiado quedando con ello poco visible para el cliente.

este es el codigo que genero para crar la MDIChild.

Cita:

procedure TfrmPrincipal.AltadeUsuario1Click(Sender: TObject);
begin
if frmAltaUsuario = Nil then
begin
Application.CreateForm(TfrmAltaUsuario, frmAltaUsuario);
frmAltaUsuario.edtFechaRegistro.Text:= DateToStr(date);
frmAltaUsuario.btnTerminarClick(Sender);
frmAltaUsuario.Show;
end
end;
esta la creo desde un menu que tengo en el MDIMain, en la ventana padre, y el codigo al momento de cerrar la ventana hija la MDIChild es este, con el cual libero el objeto en memoria, pero no entiendo por que se recorre cada que la abro.

Cita:

procedure TfrmAltaUsuario.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
frmAltaUsuario:= nil;
end;

lo que quiero saber es si alguien podria decirme como hacerle o que me falta, para que al abrir una ventana se abra como dije, normalmente y a continuacion la siguiente en forma de cascada, y si al cerrar po ejemplo la primera, la que sigue que ocupe su lugar y no que se vaya aun mas abajo como lo viene haciendo. se que hay una propiedades 'cascade' pero no se si hay que agregarlo como un metodo y que se ejecute al crear una ventana para que se vayan formando en ese orden y que no se recorran, o no se, si alguien me puede explicar que me falta, o en que estoy fayando lo agradeceria o me dijera como le puedo hacer para que no se recorran, tampoco las quiero amontonadas, pero no asi, recorriendose como escalones aunque ya no haya ni una, y aun siga recorriendo en la ultima posicion de la ultima en abrir. espero me entiendan. :(

ContraVeneno 04-03-2011 21:01:16

¿has probado cambiar la propiedad "Position" del formulario?

ivantj24 04-03-2011 21:25:46

si cambie a todas, y de hecho hay algunas que bueno, se inician y se cierran en el mismo lugar, de hecho las 2, pero el detalle es que quiero que esten separadas por unos centimetros, como en cascada, pero que al iniciar no se recorran tanto, y po rejemplo en las posiciones como poMainFormCenter, si pongo en esa posicion, todas al activarse se ponen unas tras de otras, y el usuario necesitaria moverlas para verlas y eso es lo que no quiero.

el problema es que si por ejemplo si activo 5 formularios, se miran en forma de cascada so es lo que quiero, el problema es que si cierro esos 5 formularios y estan ocupadas las 5 posiciones en forma de escalon que da la forma de cascada, y abro uno mas aunque ya no alla ni una mas abierta, continua en la posicion numero 6, y asi sucesivamente en forma erronea que no quiero, quiero que inicien como la forma de cascada pero al cerrar, que la siguiente inicie de nuevo en esa pocision o al principio, no se, el detalle es ese, que se van cargando apartir de la ultima posicion en forma de cascada, y eso que la forma cascade no la tengo en esos formularios, automaticamente se activan asi.

cabe mencionar que mis formularios los dejo en la posicion. 'poDefault' todos, y no se si por eso se crean asi, uno tras otro, y aunque ya no alla ni uno mas, al abrir otro continua desde la ultima posicion del que fue cerrado el ultimo.

gluglu 05-03-2011 16:11:45

MDIChild.Position := poDesigned;


La franja horaria es GMT +2. Ahora son las 12:31:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi