Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Menu desplegable tipo Windows 8 (https://www.clubdelphi.com/foros/showthread.php?t=84262)

pape19 27-09-2013 22:21:02

Menu desplegable tipo Windows 8
 
Hola buenas tardes.

Necesito agregar a mi aplicación una barra, o menú, como la que se desplega en Windows 8 en el escritorio, cuando movemos el mouse hacia la derecha. Al volver a mover el mouse a la izquierda este menú desaparece.

Conocen algún componente(libre o de pago), o manera de lograr esto?

Muchas gracias

oscarac 27-09-2013 22:44:24

me parece haber visto algo de eso en los componentes JEDI

pape19 30-09-2013 13:40:39

oscarac gracias por tu respuesta.

Busqué en los componentes JEDI y no encontré un componente que lo logré, no recuerdas cual es el nombre del que te refieres?

Gracias!

movorack 30-09-2013 16:23:59

Buen día.

En Delphi About puedes encontrar un ejemplo de como hicieron un dock parecido al de mac - Mac OS X Doc Launcher Simulator

pape19 30-09-2013 19:51:32

Gracias movorack por el aporte, capaz no me he explicado bien sobre lo que necesito.

En realidad sería una especie de menú, que aparece cuando muevo el mouse a uno de los dos vértices de la parte derecha de la pantalla, algo así como actúa el menú de Windows 8.

http://www.mswin.org/blog/wp-content...0/sshot-92.png

Una vez que quito el puntero que está sobre el menú, que el mismo desaparezca de la pantalla desplazandosé.

blackx5n 01-10-2013 04:27:16

1 Archivos Adjunto(s)
Cita:

Necesito agregar a mi aplicación una barra, o menú, como la que se desplega en Windows 8 en el escritorio, cuando movemos el mouse hacia la derecha. Al volver a mover el mouse a la izquierda este menú desaparece.
No se si te sirva esto que hice como ejemplo, te puede dar una idea de como crear lo que quieres.

pape19 01-10-2013 13:34:15

Black muchas gracias por el ejemplo, está muy buena la forma en que lo realizas; pero necesito lograr el efecto de desplazamiento del control que aparece y desaparece.

movorack 01-10-2013 13:37:57

Y que has buscado? Cual es tu duda? Porque los ejemplos creo que son una buena base para hacer lo que buscas.

pape19 01-10-2013 14:13:41

He tratado de varias formas, con las que me ofrecieron y jugando con los eventos de las acciones del Mouse. Se logra que cualquier control aparezca y desaparezca, pero con los ejemplos que me han ofrecido y de las formas que lo he intentado, no doy con la manera de lograr un desplazamiento visible de un control, que puede ser un panel por ejemplo.

No se si me explico...

ecfisa 01-10-2013 21:37:34

1 Archivos Adjunto(s)
Hola pape19.

Te adjunto un ejemplo a ver si te sirve de este modo.

Saludos :)

pape19 01-10-2013 21:53:36

Excelente ecfisa! Es justo lo que necesito, sabía que de alguna manera se podía lograr.

Agradezco mucho a todos los que me han ayudado con esto.

Saludos!

ecfisa 02-10-2013 03:16:45

Hola.

Agrego el código previniendo el posible borrado del adjunto por falta de espacio (o descuido... :rolleyes:)
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Grids, Buttons;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormShow(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
  with Panel1 do
  begin
    BevelOuter := bvNone;
    BevelInner := bvNone;
    BorderStyle:= bsNone;
    Ctl3D      := False;
    Visible    := False;
  end;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if X >= ClientWidth - 10 then
   AnimateWindow(Panel1.Handle, 300, AW_ACTIVATE + AW_SLIDE + AW_HOR_NEGATIVE)
  else
   AnimateWindow(Panel1.Handle, 300, AW_HIDE + AW_SLIDE + AW_HOR_POSITIVE);
end;

end.

Saludos :)


La franja horaria es GMT +2. Ahora son las 02:22:46.

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