PDA

Ver la Versión Completa : Mejorar Maximizado de los forms MDI Hijos


enecumene
24-10-2007, 19:08:28
Hola compañeros del foro, tengo la siguiente duda, tengo formularios MDi hijos que tienen su propiedad window en maximized para cuando se le llame se maximice, no? sucede lo siguente al llamar un formulario MDI se ve el form en un tamaño pequeño y luego se maximiza lo hace rapido pero que se nota demasiado el maximizado y no se ve para nada elegante, no hay una mejor forma de llamar el form MDi ya maximizado sin que se vea el proceso de maximizado?, dejo un ejemplo:

http://img215.imageshack.us/img215/8253/maximove4.jpg

espero que me hayan entendido porque ando espeso hoy:p.

Saludos.

JXJ
24-10-2007, 19:34:33
es dificil, casi imposible que no se muestre ese maximizado.

recuerdo que con windows xp, en alguna opcion de el panel de control
se pueden deshabilitar las animaciones. ahi, es donde definitivamente
ya no veras esa animacion de maximizado.

sigue buscando por el foro y encontrarar mensajes de roman y mios.
donde se trata de no mostrar ese maximizado..

la mejor opcion es que incrustes, tu form dentro de un panel de
un page control.

o que incrustes un TFrame, en lugar de tu mdi child.
dentro de un panel de un pagecontrol.

enecumene
24-10-2007, 19:40:43
Gracias JXj, empezare a buscar por el foro sus mensajes acerca de ello, de nuevo gracias por tu pronta respuesta.

Saludos.

pcicom
24-10-2007, 20:35:00
procedure TfrmMainMenu.Facturas1Click(Sender: TObject);
begin
Facturas := TFacturas.Create(Application);
LockWindowUpdate(handle);
try
Facturas.Show;
finally
LockWindowUpdate(0);
Facturas.Free;
end;
end;



Espero te sirva....

enecumene
24-10-2007, 21:16:11
Gracias PCicom, ahorita mismo lo pruebo.

Saludos.

enecumene
24-10-2007, 21:24:23
Hola de nuevo, Pcicom, el codigo no funciono, porque todavia se ve el maximizado.

Saludos.

Delphius
24-10-2007, 21:37:47
Hola enecumene. Prueba poniendo en TRUE la propiedad DoubleBuffered. Sólo es necesaria la asignación una vez, por lo que con ponerla en el OnCreate basta. Algo así:


procedure TForm1.FormCreate(Sender: TObject);
begin
form1.DoubleBuffered := true;
end;


Con esto debería andar.

Saludos,

enecumene
24-10-2007, 22:21:54
Hola Delphius, probe tu sugerencia y me tira un error:

---------------------------
Debugger Exception Notification
---------------------------
Project Sigesped.exe raised exception class EAccessViolation with message 'Access violation at address 006BFF81 in module 'Sigesped.exe'. Write of address 000001F8'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

Saludos.

pcicom
25-10-2007, 03:01:33
Funcionamiento

LockWindowUpdate(handle);


Situacion que me pasaba a mi y que se corrigio con esta instruccion.

Cuando desde mi MDIFORM padre mandaba llamar a la MDIChild aparecie el despliegue un poco lento de como se integraban los componentes en mi forma hija, lo que entendi de esta instruccion es que hace una pausa y se diseña la forma en memoria y se presente de golpe, esto evito que se mostrasen graficos como el que veo en tu link de tu imagen..

Solo habria que ver como estas llamando las FORMAS hijas... si puedes poner el codigo de llamdade desde la forma PADRE y que es lo que tienes en el ACTIVATE de la forma hija, podria tal vez entender un poco mas el tema... que creo que es el mismo que me sucedia ami...

Y que ya no me sucede.....

enecumene
25-10-2007, 15:07:52
Hola Pcicom, aqui dejo el codigo para llamar a la forma hija, pero no tengo nada puesto en el activate:

Form1:=TForm1.create(self);
Form1.Show

He estado revisando en el foro como me recomendo JXJ y he encontrado lo que se llama PARENT, hice unas cuantas pruebas con los panels y Forms, los form se presenta mas rapido, pero queria saber si es mas recomendable con los parent?.

Saludos.