PDA

Ver la Versión Completa : ¿ Barra emergente tipo Windows ?


Xavierator
17-11-2005, 17:25:20
Hola, para crear una barra emergente tipo la de inicio de Windows, a parte de los componentes AppBar (que no me acaba de funcionar del todo bien) y JvFormMagnet.pas del la Jedi Library (que no consigo instalar los componentes por errores en la instalacion), ¿ alguien conoce algun control mas ?

Saludos y gracias, Xavierator.

JXJ
17-11-2005, 18:44:09
no te entiendo.

¿barra emergente.?

¿Te refieres al menu que aparece,
al presionar el boton inicio. donde salen los iconos
para elejir un programa, o al submenu. de programas.?

dec
17-11-2005, 20:49:04
Hola,



Hola, para crear una barra emergente tipo la de inicio de Windows, a parte de los componentes AppBar (...)

Si te refieres al componente AppBar (http://www.appcontrols.com/components.html) de la casa AppControls (http://www.appcontrols.com/) es el único que conozco que te haga "tal cual" lo que necesitas. Lo que no sé qué tan complicado sería realizar tú mismo algo parecido a una "barra emergente" partiendo de un sencillo formulario... acaso no sea fácil, claro está, pero, no sé porqué tengo la sensación de que no es absolutamente difícil.



¿barra emergente.?

Creo que se refiere a algo así como la propia barra de tareas de Windows, que, efectivamente, puede ocultarse y hacerse "emerger" al pasar el ratón "cerca de ella"...

JXJ
18-11-2005, 01:41:28
yo tengo desabilitada es opcion.,

de auto ocultarse la barra, cuando,
no esta el cursor encima.

Xavierator
eso que pides, creo que se puede hacer a mano.
con el jet audio, lo puedo poner en la parte superior
o inferior, pero no me agrada por que reduce el tamaño
de las demas ventanas, para acoplarse.

a ver si te sirven los ultimos 2

http://www.torry.net/quicksearchd.php?String=appbar&Title=Yes

Xavierator
18-11-2005, 08:48:22
Hola, si, efectivamente lo que necesito es lo que comenta "DEC".

Probare los dos ultimos componentes de la Torry page, pero no se si me funcionaran, ya que son para Delphi 2 o 3 y yo lo necesito para el 6, a ver si hay suerte, son compatibles y me funcionan como yo necesito.

Por cierto, deciis que no deberia ser dificil hacerlo por uno mismo, ¿ como lo hariais ?

Gracias y ya os contare ...

Lepe
18-11-2005, 11:59:45
- La animación en sí, debería bastar con AnimateWindow de la unidad Windows.pas (en el foro se ha hablado de esa funcion).

- La barra de tareas, pues un form con un Toolbar (y coolbar probablemente), con un par de métodos, Add(Form:TForm); Remove(Form:TForm).

Como es un Form, puedes:
- Usar El icono que tenga esa ventana (si tiene alguno).
- copiar el Caption de la ventana para ponerla en un TToolButton
- guardar un puntero a ese Form, y así puedes pasarle el foco, traerlo al frente etc.

En cuanto al Toolbar en sí, pues deberías agregar todos los botones con el mismo GroupIndex, así solo tienes 1 activado cada vez.

Deberías pensar de antemano si permites varias lineas de botones.

Para que las demás ventanas de windows se acomoden según el espacio:
Con esta función puedes saber el tamaño del área de trabajo y modificarlo, mira el win32s Programmer's Reference.hlp de delphi

var R:TRect
begin
SystemParametersInfo(SPI_GETWORKAREA, 0, @R, 0);
// SetBounds(R.Left, R.Top, R.Right-R.Left, R.Bottom-R.Top);
// LOWORD(lParam); // width of client area
// nHeight = HIWORD(lParam); // height of client area


saludos

Xavierator
18-11-2005, 14:14:03
Hola, al final me lo he hecho yo mismo a traves de un formulario inicialmente de 1 pixel que detecta a traves de mensajes de Windows que se entra y lo expande a n pixeles segun necesidades:

procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;

Aunque funcionar podriamos decir que funciona (emerge y se esconde), no es la solucion perfecta porque la barra hace algunos parpadeos al mover el raton y no se como detectar que se sale de la ventana (formulario) en vez de que se sale de un TPanel por ejemplo, por lo que si alguien sabe como recoger desde una aplicacion Delphi que el raton ha salido del formulario que me lo diga.

Gracias, Xavierator.