Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   2 Form Siempre En Primer Plano (https://www.clubdelphi.com/foros/showthread.php?t=51975)

FrianxD 05-01-2008 15:40:49

2 Form Siempre En Primer Plano
 
Bueno, aquí les dejo mi duda:

Tengo 2 formularios, (Form1 y Form2)

"Form1" está totalmente Vacio... no contiene nada solamente he cambiado la propiedad "FormStyle" a "fsStayOnTop" hasta ahi me va todo bien, ahora..

"Form2" Contiene 1 CheckBox (Llamado "CheckBox1") y lo que necesito es que cuando ese "CheckBox" Está Seleccionado ( Propiedad "State" en "cbChecked") "Form2" quede tambien siempre en Primer Plano ( o sea "Form1" y "Form2" Siempre delante de todos los demas programas )
y si no que se oculte normalmente como todo programa.

Mi duda seria: ¿Se puede tener 2 Formularios a la vez en primer plano siempre?


Bueno espero haberme expresado bien ya que soy muy nuevo en esto y no entiendo demasiado... ah, me olvidaba, estoy utilizando C++ Builder :D


En Fin Muchas Gracias, espero no haber hecho una pregunta tonta :p

dec 05-01-2008 18:04:24

Hola,

Sí parece que puedan tenerse dos formularios "en primer plano", y, que todo lo demás quede por detrás de ellos. ¿Probaste y no va como esperas?

FrianxD 05-01-2008 18:09:38

Cita:

Empezado por dec (Mensaje 256251)
Hola,

Sí parece que puedan tenerse dos formularios "en primer plano", y, que todo lo demás quede por detrás de ellos. ¿Probaste y no va como esperas?

Claro, he probado y no me quedan los 2 Form en Primer plano solo queda el primero o sea Form1, y si le pongo la propiedad al otro ( Form2 ) no lo hace :(

¿ alguna idea que me pueda ayudar ?:p



Gracias Por contestar :)

dec 05-01-2008 18:49:45

Hola,

Tal vez el "efecto" que buscas no se consiga, pero, supongamos tres formularios, uno principal y otros dos secundarios. A estos dos formularios secundarios, a su propiedad "FormStyle", le damos el valor "fsStayOnTop". Ahora, desde el formulario principal mostramos los otros dos formularios, y ambos quedarán "por encima" del formulario principal y del resto de aplicaciones.

Es decir, los dos formularios pueden estar "por encima" de todo lo demás al mismo tiempo. Claro que podrás alternar entre los dos formularios, de modo que uno quede por debajo del otro, y aún así por encima de todo lo demás. Y eso digo, que, como esto parece poder hacerse, tal vez lo que estás buscando no se logre de este modo, tal vez necesitas hacer alguna otra cosa.

FrianxD 05-01-2008 18:53:02

Cita:

Empezado por dec (Mensaje 256257)
Hola,

Tal vez el "efecto" que buscas no se consiga, pero, supongamos tres formularios, uno principal y otros dos secundarios. A estos dos formularios secundarios, a su propiedad "FormStyle", le damos el valor "fsStayOnTop". Ahora, desde el formulario principal mostramos los otros dos formularios, y ambos quedarán "por encima" del formulario principal y del resto de aplicaciones.

Es decir, los dos formularios pueden estar "por encima" de todo lo demás al mismo tiempo. Claro que podrás alternar entre los dos formularios, de modo que uno quede por debajo del otro, y aún así por encima de todo lo demás. Y eso digo, que, como esto parece poder hacerse, tal vez lo que estás buscando no se logre de este modo, tal vez necesitas hacer alguna otra cosa.


Bueno, ahora voy a intentar eso que me decis espero que me funcione =P y si asi es te lo agradecere mucho y si no tb te agradesco el intentar ayudarme ! Muchas Gracias en ratito digo mi resultado :p:D

FrianxD 05-01-2008 19:22:43

Cita:

Empezado por dec (Mensaje 256257)
Hola,

Tal vez el "efecto" que buscas no se consiga, pero, supongamos tres formularios, uno principal y otros dos secundarios. A estos dos formularios secundarios, a su propiedad "FormStyle", le damos el valor "fsStayOnTop". Ahora, desde el formulario principal mostramos los otros dos formularios, y ambos quedarán "por encima" del formulario principal y del resto de aplicaciones.

Es decir, los dos formularios pueden estar "por encima" de todo lo demás al mismo tiempo. Claro que podrás alternar entre los dos formularios, de modo que uno quede por debajo del otro, y aún así por encima de todo lo demás. Y eso digo, que, como esto parece poder hacerse, tal vez lo que estás buscando no se logre de este modo, tal vez necesitas hacer alguna otra cosa.


Como puedo hacer para crear Form1 primario y Form2 y Form3 sean secundarios?:confused: :(

dec 05-01-2008 19:25:26

Hola,

No es necesario que hagas nada en especial. En Delphi (o C++ Builder) las aplicaciones ("visuales") cuentan con un formulario principal: el primero que se crea, es el formulario principal. Cuando este formulario se cierra, se cierra también la aplicación. El resto de formularios que añadas (dos, tres o los que necesites) serán formularios "secundarios", entendiendo esto como que no serán el principal, pues principal sólo hay uno: el primero que se crea.

FrianxD 05-01-2008 19:30:09

Cita:

Empezado por dec (Mensaje 256266)
Hola,

No es necesario que hagas nada en especial. En Delphi (o C++ Builder) las aplicaciones ("visuales") cuentan con un formulario principal: el primero que se crea, es el formulario principal. Cuando este formulario se cierra, se cierra también la aplicación. El resto de formularios que añadas (dos, tres o los que necesites) serán formularios "secundarios", entendiendo esto como que no serán el principal, pues principal sólo hay uno: el primero que se crea.

Ah, perdon pense que si habia que hacer algo en especial, bueno, paso a comentarte que haciendo eso, igual no me deja ponerlos en "primer plano" a Form2, y Form3, les activo la propiedad fsStayOnTop pero no quedaron en primer plano :( alguna solucion?? :rolleyes:


Muchas Gracias Por Tus Respuestas Rapidas, y perdon por mi ignorancia :)

dec 05-01-2008 19:46:52

Hola,

No te preocupes. Yo creo que habremos de definir entonces de qué hablamos cuando decimos que queremos que los formularios queden "en primer plano". En la pruebas que yo he hecho, como he dicho arriba, es posilble tener dos formularios "en primer plano", tal y como yo entiendo que es esto, y no es más que utilizando la propiedad "FormStyle" de los formularios.

Si tú haces eso y no funciona como espera, entonces, es posible que tú no quieras realmente formularios en primer plano, o no como yo entiendo que eso significa. ¿Necesitas que un formulario esté por encima de todo lo demás? Eso es un formulario "on top", o en primer plano. ¿Necesitas que dos formularios permanezcan por encima de todo lo demás? Lo que hemos estado hablando permite eso.

Ahora bien, siempre podrá alternarse entre los dos formularios que están en primer plano (recordemos, con respecto a todas las demás ventanas de aplicaciones). ¿Es esto lo que no quieres? Pero, en este caso, no podría sino hacerse que uno de los dos formularios estuvieran, no en primer plano, sino mostrándose "modalmente".

Aunque sólo un formulario podrá estar mostrándose "modalmente" al mismo tiempo, en este caso ya no podrán ser dos formularios: uno u otro podrá ser "modal", pero, no ambos al mismo tiempo, o al menos no que yo sepa ahora mismo. Así que... no sé... ta vez si explicas un poco lo que quieres conseguir.

En todo caso tenemos que ponernos de acuerdo en qué significa para ti y para mí que un formulario esté en primer plano, para estar seguro de estar refiriéndonos a lo mismo.

FrianxD 05-01-2008 20:08:25

Cita:

Empezado por dec (Mensaje 256275)
Hola,

No te preocupes. Yo creo que habremos de definir entonces de qué hablamos cuando decimos que queremos que los formularios queden "en primer plano". En la pruebas que yo he hecho, como he dicho arriba, es posilble tener dos formularios "en primer plano", tal y como yo entiendo que es esto, y no es más que utilizando la propiedad "FormStyle" de los formularios.

Si tú haces eso y no funciona como espera, entonces, es posible que tú no quieras realmente formularios en primer plano, o no como yo entiendo que eso significa. ¿Necesitas que un formulario esté por encima de todo lo demás? Eso es un formulario "on top", o en primer plano. ¿Necesitas que dos formularios permanezcan por encima de todo lo demás? Lo que hemos estado hablando permite eso.

Ahora bien, siempre podrá alternarse entre los dos formularios que están en primer plano (recordemos, con respecto a todas las demás ventanas de aplicaciones). ¿Es esto lo que no quieres? Pero, en este caso, no podría sino hacerse que uno de los dos formularios estuvieran, no en primer plano, sino mostrándose "modalmente".

Aunque sólo un formulario podrá estar mostrándose "modalmente" al mismo tiempo, en este caso ya no podrán ser dos formularios: uno u otro podrá ser "modal", pero, no ambos al mismo tiempo, o al menos no que yo sepa ahora mismo. Así que... no sé... ta vez si explicas un poco lo que quieres conseguir.

En todo caso tenemos que ponernos de acuerdo en qué significa para ti y para mí que un formulario esté en primer plano, para estar seguro de estar refiriéndonos a lo mismo.


Bueno, voy a tratar de expresarme lo mejor posible ya que me parece que te estoy volviendo loco jejeje :p bueno para mi tener Formularios en Primer Plano es Tenerlo Siempre Visible y Por Encima De cualquier otro programa, ejemplo:

en este momento estoy escribiendote una respuesta, y un formulario que tiene la propiedad para que quede en primer plano deberia estar por encima de esta pagina, y haga si abro otra pagina por encima de esta, el Formulario tiene que seguir Arriba de todo ( en primer Plano ),


Bueno espero que ahora si me hayas entendido ya que no se me ocurrio otro ejemplo =P

Yo he probado Crear 2 Form, y ponerle la propiedad FormStyle y la verdad que no quedan los 2 por encima de todo tambien probe crear 3 form.

Form1
Form2
Form3

y que Form2 y Form3 tengan la propiedad FormStyle en fsOnStayTop y tmp se me soluciona el problema, si vos has probado y te funciona correctamente seguramente estoy haciendo algo mal y no me doy cuenta que es =(



Muchas Gracias Por Todo...

JXJ 07-01-2008 03:10:56

En delphi se que hay componentes para hacer lo que quieres
supongo que tambien han de funcionar con c++ builder

el asunto es que tu quieres el efecto que te da el winamp.
de tener el control principal, las bibliotecas de musica, y un mininavegador
siempre visibles,

la unica forma es que estos esten como pegados, de los bordes.

hay formas de hacerlo por codigo que no recuerdo como

aqui esta un componente que hace lo que te dijo
http://appcontrols.com/components.html

FormMagnet


The FormMagnet allows to magnetize your forms to an edges of screen / work area, borders of parent window and to other forms. Forms can glue each others, so when user moves the form, others, “glued” forms will be moved too. With FormMagnet, your forms can looks and feels like windows of famous WinAmp player.

With FormMagnet forms obtains following abilities: 1. to be attracted to edges of screen or work area (considering placement of task / appbars);
2. to be attracted to borders of parent form (for child windows);
3. to attract other forms (with FormMagnet on them) to itself;
4. to glue other forms to itself (when user move form, others, attached forms will be moved too);
5. to move forms, dragging by client area.

License: Shareware - ORDER NOW!
Last updated: April 27, 2007
Compatibility: Delphi 2/3/4/5/6/7/2005/2006/2007, C++ Builder 1/3/4/5/6/2006Download: formmagnet.zip (300 Kb), Exe-demo (90 Kb)

aqui el exe demo
http://appcontrols.com/download/exe/FormMagnetDemo.exe

y el codigo fuente

http://appcontrols.com/download/formmagnet.zip

este es de pago, recuero que en www.utilmind.com
vi que ese componente existia en su version basica rudimentaria
como gratuito con su codigo fuente

FrianxD 08-01-2008 11:36:08

En Fin...
 
La verdad que intente todo lo que me dijieron, y no puedo, tal vez no me salga por que estoy haciendo mal algo, no se :p, pero ya me puso nervioso ! asi que pienso dejar eso por unos dias =P y luego volvere a intentar..., agradesco a cada 1 de los que respondieron e intentaron ayudarme, muchas gracias por la buena onda ! :D me gusta este foro :rolleyes: desde ya muchas gracias, y si pueden seguir aportandome opciones se los agradeceria tb, si puedo lograr terminarlo voy a dejar ak como se hace xD por que tal vez pueda servirle a alguien mas :)



Gracias a todos..

grandmasterdari 11-01-2008 23:44:48

intento de ayuda
 
segun se, no se puede tener 2 ventanas al mismo tiempo activas, intenta abrir 1 carpeta en 2 ventanas y el "focus" va cambiando segun selecciona el click de mouse, por lo tanto es un comportamiento del sistema operativo, nunca vi 2 ventanas a la vez on focus, lo mas cerca ke vi fue una supuesta simulacion de ese comportamiento, y estas eran imagenes que se haciand pasar por ventanas activas :D , que trucazo diria moe.

escafandra 11-01-2008 23:56:44

No se pueden tener dos ventanas en primer plano a la vez, y mucho menos con foco. Pero si se pueden colocar delante de las demas aunque sólo una este en primer plano.
Revisa la API

Código:

BOOL SetWindowPos(

    HWND hWnd,        // handle of window
    HWND hWndInsertAfter,        // placement-order handle
    int X,        // horizontal position
    int Y,        // vertical position
    int cx,        // width
    int cy,        // height
    UINT uFlags        // window-positioning flags
  );


JXJ 12-01-2008 18:31:02

si se pueden tener dos ventanas al frente al mismo tiempo.
si el winamp, puede hacerlo cualquier otro programa lo puede hacer.
yo lo he hecho con esos componentes de appcontrols.

El foco, o ventana activa. solo puede ser una.
lo mismo pasa con el winamp. muestra hasta 4 ventanas diferentes.
reproductor
equailizador,
lista de canciones,
y ventana de lyrics o la letra de canciones,

escafandra 12-01-2008 19:15:46

Claro, si entendemos por primer plano, estar delante de las demas ventanas, y queremos que sean dos o mas, no deben pisarse, pues una estara siempre delante. El truco esta en darles posiciones de "profundidad" consecutivas y que no se solapen (SetWindowPos).

FrianxD 15-01-2008 22:41:02

Bueno muchisimas gracias por las ayudas ahora veremos que sale! =)


La franja horaria es GMT +2. Ahora son las 03:36:18.

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