2011-06-24 14 views
25

İlk olarak, Windows Vista ve Windows 7'de bu özelliği aşıyorum. İkinci olarak, bunu yapmak istiyorum. Here, WPF'de burada ne yapmak istediğimi soran bir sorudur.Bir delphi programında Gizli Ana Menü, Alt tuşu kullanılarak otomatik olarak gösterilir

Aynı şeyi yapmak istiyorum, ancak Delphi'de, VCL hisse senedi bileşenleri, TMainMenu veya Action Manager menülerini veya bazı üçüncü taraf bileşenlerini, hatta Toolbar2000'i veya başka bir kütüphaneyi kullanıyordum. Windows Vista/Windows 7 kaşif ana-menülerin

Özelliği: Uygulamanın basıp Alt bırakmadan

  • başlar yaptığında görünür değil

    • o basıp tekrar Alt bırakmadan
    • görünür görünmez kılan tekrar
    • tekrarlanabilir.
    • kısayol tuşları menü olsa bile menü öğeleri üzerinde çalışmak görünmez *

    (* Windows Gezgini Kısayol tuşları Örnek: Microsoft Windows Explorer Ctrl + A menüleri görünmez olduğunda bile tüm seçer, Alt + T = getirmek Tüm menü gizlendiğinde bile araçlar açılır menüsü.

    enter image description here

    Güncelleme: Kabul cevabı kullanılarak Demo here indirilebilir. (HiddenMenu.zip)

  • +0

    Dürüstlüğünü seviyorum! –

    +0

    Windows Gezgini'nde aştığım birçok özellik var. Bilinen/kayıtlı dosya türleri için uzantıları gizle, "basitleştirilmiş dosya paylaşımı" ve 9 seviyeli derinlikte NTFS dosya izinlerini değiştirmek için diyaloglara gitmeniz gerekiyor "en az favorilerim". :-) –

    cevap

    31

    Her zamanki gibi TActionList ile bir TMainMenu kullanın.

    Sonra

    do
    procedure TForm1.FormShow(Sender: TObject); 
    begin 
        Self.Menu := nil; 
    end; 
    

    (veya basitçe tasarım zamanında Menu ilişkiyi kaldırmak) ve

    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; 
        Shift: TShiftState); 
    begin 
        if (Key = VK_MENU) or (Key = VK_F10) then 
        Menu := MainMenu1; 
    end; 
    

    ve

    procedure TForm1.WndProc(var Message: TMessage); 
    begin 
        inherited; 
        case Message.Msg of 
        WM_EXITMENULOOP: 
         SetMenu(Handle, 0); 
        end; 
    end; 
    

    ayarlamak unutmayın formu en KeyPreview için true.

    (kısayolları TActionList tarafından ele olduğu için ikisi de menü 'gitti' olsa bile çalışmak, dikkat edin.)

    +7

    +1 Güzel iş! –

    +0

    @David: İstediğiniz kadar hoş değil ... Menü maddesini tıklarsanız işlem tetiklenmiyor gibi görünüyor. Üzerinde çalışıyorum ... WM_EXITMENULOOP' için –

    +0

    +1 –