| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
americo_bcb Lt

Registrado: 05 May 2004Mensajes: 84
|
Publicado: Jue 13 May, 2004 3:32 pm Asunto: Formulario MDI |
|
|
Holas a todos en el foro
bueno y otra vez, quisiera saber como hacer para tener un formulario MDIForm con una barra de tareas interna algo asi como lo hace el IBExpert he provado el componente Elegant MDI Interface (http://www.zecos.com) que es un componete para delphi el cual lo pueden descargar de la pagina web indicada o mejor aun en el siguiente URL http://www.zecos.com/delphi/components.html
El echo es que este componente tiene un problema y es que cuando creas la ventana hija no refresca el caption del formulario en el boton de la barrita solo lo hace cunado minimizas o maximizas la ventana hija, si alguien conoce una forma de solucionar este problema o alguna rutina para hacer esta barrita estaria muy agradecido
Americo
C++Builder lo mejor de lo mejor
Ultima edición por americo_bcb el Vie 16 Jul, 2004 3:48 pm, editado 1 vez |
|
| Volver arriba |
|
 |
americo_bcb Lt

Registrado: 05 May 2004Mensajes: 84
|
Publicado: Lun 24 May, 2004 5:34 pm Asunto: |
|
|
_Leo Alguna ayuda acerca de como hacer la barra de tareas dentro de un formulario MDI y sorry por la molestia
Americo
C++ BUilder lo Mejor de lo Mejor |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Vie 28 May, 2004 2:06 am Asunto: |
|
|
Si te gusta ese mismo componente, puedes bajar una versión corregida desde:
http://www.telefonica.net/web/ljfg/temp/elegantmdi_corregido.zip
Pruébalo y dime si te da algún problema. Saludos.
Todas las líneas que he añadido al "ElegantMDI.pas" empiezan por "{*_Leo*}" para que puedas ver los cambios que he hecho. |
|
| Volver arriba |
|
 |
americo_bcb Lt

Registrado: 05 May 2004Mensajes: 84
|
Publicado: Vie 28 May, 2004 4:10 pm Asunto: Muchas gracias pero ..... |
|
|
_Leo muchisimas gracias por la ayuda que me diste, pero ahora recien me di cuenta de otro problema cuando mimizas la ventana aparece un recuadro vertical al inferior del MDIForm algo que hace que no se muestre como una autentica barra de tareas, he buscado información acerca de como ocultar un MDI pero me lleve la sopresa al ver que no existe un envento onMinimize dentro de un form, mi idea era que cuando lo minimizen lo oculte y puedan acceder por la barra de tareas, si puedes darme una mano en eso estaria muy agradecido pero desde ya gracias
Americo
C++BUilder lo mejor de lo mejor
Ultima edición por americo_bcb el Sab 29 May, 2004 3:07 pm, editado 1 vez |
|
| Volver arriba |
|
 |
jotny Master


Registrado: 17 Feb 2004Mensajes: 226Ubicación: santiago
|
Publicado: Sab 29 May, 2004 5:38 am Asunto: Grande Leo...... |
|
|
Hola señores, he estado probando el componente, y tiene las siguientes Falencias.
--Al minimizar la form hija... queda minimizada como barra, ademas del boton, por lo que sería necesario "saber" cuando la form hija es minimizada, ocultarla con ShowWindow(Handle,SW_HIDE)
-- Es posible cuando se hace click al boton en la barra, se minimice o maximice, dependiendo de la situacion actual de la form hija?, asi como la barra de tareas de windows?
--Se podrá poner un separador de boton? para que no se vea lineal.
por el momento he podido ocultar la form pero solo cuando se minimiza con boton derecho desde el boton, pero no cuanodo se minimiza de manera standart.... y el componente Aplication Events solo me toma los eventos que vengan de la form principal, no importando si el componente lo pongo en una child..... si se solucionaran estos problemas... quedaria perfecto el componente... lo malo es que no se de pascal por ello me es muy complejo ver si pudiera incorporar la funcionalidad que he descrito.... ... Leo, se te ocurre como capturar el evento minimizar desde la hija? ademas del click y saber a que hija pertenece? para incorporarlo de alguna manera inmediatamente en el componente? |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Sab 29 May, 2004 6:06 am Asunto: |
|
|
Aquí van mas correcciones para que se comporte como la barra de tareas (comentarme los fallos que veáis):
http://www.telefonica.net/web/ljfg/temp/elegantmdi_corregido2.zip
| Cita: | | --Se podrá poner un separador de boton? para que no se vea lineal. | Aún no le he añadido separadores, pero si queréis se los añado. (A este paso casi mejor rehacerlo en C++ ) |
|
| Volver arriba |
|
 |
jotny Master


Registrado: 17 Feb 2004Mensajes: 226Ubicación: santiago
|
Publicado: Sab 29 May, 2004 9:44 am Asunto: GRANDE LEOOO |
|
|
hola leo, mira, lo estuve probando y cada vez se parece a la barra de tareas, pero unas cosas...
--Solo se pueden visualizar 10 ventanas, de la 11 en adelante no se pueden ver a menos que en el menu de inicio de la aplicacion se vaya a mas ventanas, una forma podria ser moverse con una especie de flecha que al presionarla vaya avanzando para las otras ventanas...... al estilo barra de herramientas de builder.
-- será posible que el componente al crear los botones le de mas profundidad 3D, ya que muchas ventanas consecutivas se ven planas, o al menos un separador.
DE todas maneras. el componente ya presenta muy buena apariencia para compararlo con la barra de tareas de windows...
GRANDE _LEO |
|
| Volver arriba |
|
 |
americo_bcb Lt

Registrado: 05 May 2004Mensajes: 84
|
Publicado: Sab 29 May, 2004 3:02 pm Asunto: GENIAL LEO |
|
|
_Leo eres genial, yo habia estado probando poner el siguiente codigo en los eventos TChild.MinimizeMDIWindow y TChild.RestoreMDIWindow
| Código: | procedure TChild.MinimizeMDIWindow(Sender: TObject);
begin
ShowWindow(Handle,SW_MINIMIZE);
{Americo_bcb} ShowWindow(Handle,SW_HIDE);
end;
procedure TChild.RestoreMDIWindow(Sender: TObject);
begin
ShowWindow(Handle,SW_RESTORE);
{Americo_bcb} ShowWindow(Handle,SW_SHOW);
end; |
Pero definitivamente tu metodo es muchisimo mas elegante, pero como indica jotny:
| Cita: | | Solo se pueden visualizar 10 ventanas, de la 11 en adelante no se pueden ver a menos que en el menu de inicio de la aplicacion se vaya a mas ventanas |
y otra consulta como se puede hacer para que cuando se llame a una ventana hija que ya esta creada hacer que no se cree otra y otra y otra... bueno estoy buscando en el foro pero aun no encuentro la respuesta.
De todas maneras gracias _Leo como dice este mensaje eres Genial y vales 100 puntos .
Como dices seria genial si se reescribe este componente en C++ y puede ser para el proyecto Open Source del Club Builder
Americo
C++Builder lo Mejor de lo Mejor |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Sab 29 May, 2004 9:05 pm Asunto: |
|
|
| Cita: | | -- será posible que el componente al crear los botones le de mas profundidad 3D | Has probado poniendo la propiedad "Flat" a "false" ? Quizás así se vea mejor.
Lo que teníamos hasta ahora, pero en C++:
http://www.telefonica.net/web/ljfg/temp/CBElegantMDI1.zip |
|
| Volver arriba |
|
 |
jotny Master


Registrado: 17 Feb 2004Mensajes: 226Ubicación: santiago
|
Publicado: Sab 29 May, 2004 11:36 pm Asunto: Como siempre... tienes toda la razon...:) |
|
|
Hola Gran _Leo, tenias razon, flat en false y queda muy bien representado el boton, ahora no será necesario los separadores, ya que con profundidad 3D es mas que suficiente.. no obstante pude observar lo siguiente
1--al presionar a todos los botones que se crean, la ultima ventana que estaba activa, deja de todas maneras el boton undido.
2--se podrá incorporar una flecha que al presionarla me permita ver las ventanas que no se alcanzan a ver?..
3--al maximizar la ventana hiija... se podrá quitar el icono que se pone en el Menu de la principal?¨.....
4-- otra cosa... cuando las ventanas estan maximizadas, y se persionan los botones... la ultima ventana nunca desaparece.... solo desaparecen todas si estan en modo ventana normal. ocurriendo lo que puse en el punto 1.
Cada vez queda muy genial,,... ahora que la pusiste en C, voy a ver si puedo hacer alguna cosa para que quede como la barra de tareas de windows.... aunque si yo me demoro 2 dias... El GRAN _Leo lo hará en minutos...  |
|
| Volver arriba |
|
 |
jotny Master


Registrado: 17 Feb 2004Mensajes: 226Ubicación: santiago
|
Publicado: Dom 30 May, 2004 5:25 am Asunto: Problema con el scroll |
|
|
| si te creas una hija que tiene demasiados componentes por lo que al mostrarla aparecen los scrolls.... no se pintan bien.... porfavor, prueben esto para descartar que es error en mi builder o algo por el estilo.... |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 31 May, 2004 1:17 am Asunto: |
|
|
| Cita: | | si te creas una hija que tiene demasiados componentes por lo que al mostrarla aparecen los scrolls.... no se pintan bien.... |
Solo lo he podido probar en el BCB4 y en el 6. Si con lo de no pintarse bien te refieres a que en Windows XP la barra de titulo pierde el tema del XP, esto me ocurre solo en el BCB4. |
|
| Volver arriba |
|
 |
americo_bcb Lt

Registrado: 05 May 2004Mensajes: 84
|
Publicado: Lun 31 May, 2004 4:22 pm Asunto: no me complia sobre bcb5 |
|
|
_leo una ves mas gracias por todo te comento que estoy utilizando el BCB5 y cuando compile el componente dentro de un nuevo Package me envia un error que dice:
| Cita: | | [C++ Error]CBElegantMDI.cpp(405): E2451 Undefined symbol "IDANI_CAPTION" |
Te comento que solo elimine las lineas en blanco y lo puse todo en castellano bueno la menos los mensajes pero aun no se por que envia ese error, otra cosa que ocurre con el componente es que cuando le pones aling alBotton y tienes una barra de estado en el form padre la barra se va debajo de la barra de estado todo esto en tiempo de ejecucion por que en diseño todo esta bien, bueno eso con el componente corregido en pascal.
Americo
C++ Builder lo mejor de lo mejor |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 31 May, 2004 5:09 pm Asunto: |
|
|
| Cita: | | [C++ Error]CBElegantMDI.cpp(405): E2451 Undefined symbol "IDANI_CAPTION" | El BCB5 no lo tengo instalado, solo el BCB4 y el BCB6, y es extraño que si en el BCB4 reconoce ese define no lo reconozca igual en el BCB5, de todos modos este es su valor:
#define IDANI_CAPTION 3
| Cita: | | otra cosa que ocurre con el componente es que cuando le pones aling alBotton y tienes una barra de estado en el form padre la barra se va debajo de la barra de estado todo esto en tiempo de ejecucion por que en diseño todo esta bien | Quieres decir que si en tiempo de diseño colocas correctamente los dos componentes, cuando lo ejecutas se te cambian de posición? Porque en el BCB4 ni en el BCB6 me ocurre esto, se quedan tal como las coloque en tiempo de diseño. Al menos con la ultima versión que he puesto en C++. Con la versión en pascal no he probado esto. |
|
| Volver arriba |
|
 |
jotny Master


Registrado: 17 Feb 2004Mensajes: 226Ubicación: santiago
|
Publicado: Jue 10 Jun, 2004 9:12 am Asunto: algo ocurre... |
|
|
Hola _Leo... he probado mucho el componente... el problema que surge es que cuando haces click muchas veces a las ventanas... a todas las que has creado en los botones en la barra de tareas... en un momento se restauran... es decir.. si restauras una... las demas tambien se restauran o se maximizan dependiendo de lo que ultimo que hagas con la ventana activa.... pero falta poquiiito para que quede como la barra de tareas de windows
.. adios... super _Leo |
|
| Volver arriba |
|
 |
|