Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-07-2011
maiquemasque maiquemasque is offline
Miembro
 
Registrado: nov 2009
Posts: 14
Poder: 0
maiquemasque Va por buen camino
Menú principal que se comporte como en Windows Vista/7

Hola;

En Windows Vista/7 ya sabeis que el menú principal está oculto y aparece al pulsar la tecla Alt y luego se oculta otra vez. ¿Alguien sabe como implementar este comportamiento con Delphi?

Gracias
Responder Con Cita
  #2  
Antiguo 13-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
el menú principal está oculto y aparece al pulsar la tecla Alt y luego se oculta otra vez. ¿Alguien sabe como implementar este comportamiento con Delphi?
Hola.

Podrías hacer:
Código Delphi [-]
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Shift = [ssAlt] then
  begin
    if Menu = nil then
      Menu:= MainMenu1
    else
      Menu:= nil;
    Key:= 0;
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 13-07-2011
maiquemasque maiquemasque is offline
Miembro
 
Registrado: nov 2009
Posts: 14
Poder: 0
maiquemasque Va por buen camino
Gracais ecfisa

Pero aun me faltan cosas para que tenga el comportamiento. Con este código se muestra/oculta pulsando alt. Pero si por ejemplo puslo Alt+Tab para saltar a otra aplicación y el menú esta oculto, se hace visible al haber pulsado Alt.

Y no se como hacerle tomar el foco, o sea, al pulsar Alt aparece el menú pero no toma el foco. Y al pulsar esc o pasar el foco a otro control no desaparece tampoco.

He buscado por si había algún componente pero no veo nada. Gracias otra vez...
Responder Con Cita
  #4  
Antiguo 14-07-2011
x_aguilarf x_aguilarf is offline
Miembro
 
Registrado: abr 2006
Posts: 22
Poder: 0
x_aguilarf Va por buen camino
Podrías probar con esto:

Código Delphi [-]
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_MENU then
  begin
    if Menu = nil then
      Menu:= MainMenu1
    else
      Menu:= nil;
    Key:= 0;
  end;
end;
Responder Con Cita
  #5  
Antiguo 14-07-2011
x_aguilarf x_aguilarf is offline
Miembro
 
Registrado: abr 2006
Posts: 22
Poder: 0
x_aguilarf Va por buen camino
Una solución mucho mejor que hace lo que pides:

Código Delphi [-]
procedure TForm1.WndProc(var Message: TMessage);
begin
  inherited;
  case Message.Msg of

    WM_EXITMENULOOP: begin
      Self.Menu := nil;
    end;

    WM_ENTERMENULOOP: begin
      Self.Menu := MainMenu1;
    end;

  end;
end;

Saludos
Responder Con Cita
  #6  
Antiguo 15-07-2011
maiquemasque maiquemasque is offline
Miembro
 
Registrado: nov 2009
Posts: 14
Poder: 0
maiquemasque Va por buen camino
Cita:
Empezado por x_aguilarf Ver Mensaje
Una solución mucho mejor que hace lo que pides:

Código Delphi [-]procedure TForm1.WndProc(var Message: TMessage); begin inherited; case Message.Msg of WM_EXITMENULOOP: begin Self.Menu := nil; end; WM_ENTERMENULOOP: begin Self.Menu := MainMenu1; end; end; end;


Saludos
Este código no me hace nada, no ocurre nada Muchas gracias de todas formas gracias a todos por vuestra atención. Al final he optado por simplemente dar la opción de mostrarlo o no mostrarlo.

Me habría gustado añadirle a parte de tener la opción de tenerlo fijo o no lo que se ha intentado aquí, pero no lo consigo.

Bueno, gracias de nuevo, un saludo
Responder Con Cita
  #7  
Antiguo 15-07-2011
x_aguilarf x_aguilarf is offline
Miembro
 
Registrado: abr 2006
Posts: 22
Poder: 0
x_aguilarf Va por buen camino
debería de funcionar, yo le he probado y me funciona a la perfección. Algo debes de hacer mal.

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus;

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  protected
    procedure WndProc(var Message: TMessage); override;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WndProc(var Message: TMessage);
begin
  inherited;
  case Message.Msg of

    WM_EXITMENULOOP: begin
      Self.Menu := nil;
    end;

    WM_ENTERMENULOOP: begin
      Self.Menu := MainMenu1;
    end;

  end;
end;

end.
Responder Con Cita
  #8  
Antiguo 15-07-2011
maiquemasque maiquemasque is offline
Miembro
 
Registrado: nov 2009
Posts: 14
Poder: 0
maiquemasque Va por buen camino
Cita:
Empezado por x_aguilarf Ver Mensaje
debería de funcionar, yo le he probado y me funciona a la perfección. Algo debes de hacer mal.
...
Si, si que funciona. Algo hacía mal, pero no se que era. He probado en un nuevo proyecto y funciona perfectamente.

¡Mil gracias x_aguilarf! Buen finde...
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Compartir archivos entre Windows Vista sobre VirtualBox y Windows XP como host mlara Windows 2 27-03-2009 10:27:28
imagenes en el menu principal josi Conexión con bases de datos 1 27-03-2008 10:57:48
Menú de apagado en Windows Vista y como trabaja Microsoft DarKraZY La Taberna 8 29-11-2006 21:00:55
Cambiar fondo de menu principal zugazua2001 Varios 0 30-06-2005 07:23:50


La franja horaria es GMT +2. Ahora son las 14:44:56.


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
Copyright 1996-2007 Club Delphi