2013-02-14 9 views
5

Ja próbuje utworzyć menu i paska narzędzi aplikacji w Delphi XE3 że wygląda następująco (z programu mam):Delphi: Stylizowany TMainMenu i TToolBar w TCoolBar

Main menu and toolbar in TCoolBar

jestem zdolne do replikacji część tego spojrzenia, wykonując następujące czynności:

  1. Utwórz nowy VCL Forms aplikacji
  2. Dodaj TMainMenu i wstawić szablon dla menu Plik/Edycja/etc.
  3. Dodaj TCoolBar do formularza
  4. Dodaj TToolBar do TCoolBar
  5. Dodaj TToolButton do TToolBar dla każdego pliku/Edycja/etc. i wybierz właściwość Group
  6. Usuń właściwość Menu z formularza (więc nie pokazuje menu programu)
  7. Przypisanie właściwości MenuItem dla każdego TToolButton do odpowiedniego pliku/Edycja/etc.
  8. dodać drugi TToolBar do TCoolBar pod pierwszy

Oto jak to wygląda:

My main menu and toolbar in TCoolBar

To nieco podobne, ale wciąż brakuje wszystkich elementów stylu zmodyfikować wygląd nowego menu aplikacji.

Moje pytanie brzmi, czy ktoś wie, jak osiągnąć podobny efekt, być może z biblioteką komponentów innej firmy? Prawdopodobnie oryginalny programista użył biblioteki VCL innej firmy. Chciałbym dodać cień do menu w stylu i TCoolBar.

Próbowałem już menu Raize Components, TMS Advanced Toolbars & Menu, a teraz próbuję składników DevExpress VCL. Żadne z nich nie wydaje się dostarczać rozwiązania, ale być może nie jestem dostatecznie zaznajomiony z nimi jeszcze, aby to zrozumieć.

+3

Czy próbowałeś użyć 'TActionMainMenuBar'? –

+4

+1 @ Sertac. [Tutaj] (http://stackoverflow.com/questions/11963441/tmainmenu-is-not-shown-when-the-vcl-styles-is-removed-from-the-nc-area) RRUZ zaleca także użycie ' TActionMainMenuBar' zamiast 'TMainMenu', a ja ufałbym wszystkim, co mówi ten facet o stylach VCL. – kobik

+2

@kobik - Ciekawe użycie w pytaniu, które łączysz ... Rzeczywiście, style mogą mu się zawdzięczać, bez względu na łaskę, którą otrzymuje od programistów (nie jestem pewien, czy to angielski, to komplement :)). –

Odpowiedz

5

Delphi ma wersję demonstracyjną ActionBands, która może pokazać, jak uzyskać ten wygląd "po wyjęciu z pudełka" w menu, używając TActionMainMenuBar (i TActionToolBar). Wystarczy zmienić menu Style do XP Style w demo:

ActionBands demo

Reszta twoich kroków wydaje się całkiem dobrze zakończona. Aby wyświetlić obrazy w elementach menu i przyciskach paska narzędzi, zobacz użycie komponentów ImageList w połączeniu z TActions w menu i na pasku narzędzi w wersji demonstracyjnej.

+0

Dzięki, to jest to, czego potrzebowałem. Jedna kwestia jednak - moja przykładowa aplikacja nie pokazuje cienia w menu tak jak twoje, nawet jeśli wybiorę "Menu Shadows" z listy po skompilowaniu i uruchomieniu. 'TActionMainMenuBar' już ma właściwość Shadows również ustawioną domyślnie. – spurgeon

+0

To * jest * dziwne. Zrobiłem zrzut ekranu z działającej instancji tej aplikacji (Win7 64, uruchom z XE3 IDE, nowo zbudowany). Na jakim systemie operacyjnym jesteś? –

+0

Jeszcze bardziej interesujące z "Vcl.ActnMenus.TActionMainMenuBar.Shadows' docs:" Użytkownik może wyłączyć cienie w systemie operacyjnym, w takim przypadku ustawienie Shadows jest ignorowane. " W mojej drugiej maszynie wirtualnej Windows 7 pokazuje cienie. W jakiś sposób w mojej wirtualnej maszynie programistycznej mam cienie wyłączone. Co do tego, gdzie ta właściwość jest przechowywana przez system operacyjny, nie mam pojęcia. – spurgeon