Fare bir menü bileşeninin üzerine geldiğinde bir ipucu veya ipucu görüntülemek üzere Delphi uygulamalarını programlamak için belirli kodlama dilini kullanın. "ShowHint" özelliği "true" olarak ayarlanmışsa ve "hint" özelliğine metin eklerseniz, fare, bileşenin üzerine (örneğin bir TButton) yerleştirildiğinde bu ileti görüntülenir.
Menü Öğeleri için İpuçlarını Etkinleştir
Windows'un tasarlanma şekli nedeniyle, hint özelliğinin değerini bir menü öğesine ayarlasanız bile, açılır ipucu görüntülenmez. Ancak, Windows başlat menüsü öğeleri ipuçlarını görüntüler. Internet Explorer'daki sık kullanılanlar menüsü de menü öğesi ipuçlarını görüntüler.
Genel uygulama değişkeninin OnHint olayını Delphi durum çubuğunda menü öğesi ipuçlarını görüntüleme uygulamaları.
Windows, geleneksel bir OnMouseEnter olayını desteklemek için gereken iletileri göstermez. Ancak, kullanıcı bir menü öğesi seçtiğinde WM_MENUSELECT mesajı gönderilir.
TCustomForm'un (TForm'un atası) WM_MENUSELECT uygulaması, menü öğesinin ipucunu "Uygulama" olarak ayarlar. İpucu "böylece Uygulamada kullanılabilir. OnHint etkinliği.
Delphi uygulama menülerinize menü öğesi açılır ipuçları (araç ipuçları) eklemek istiyorsanız, WM_MenuSelect mesajına odaklanın.
Popup İpuçları
Çünkü Uygulamaya güvenemezsiniz. Menü öğeleri için ipucu penceresini görüntülemek için ActivateHint yöntemi (menü kullanımı tamamen pencereler), ipucu penceresinin görüntülenmesi için "THintWindow" dan yeni bir sınıf türeterek ipucu penceresinin kendi sürümünü oluşturmanız gerekir.
TMenuItemHint sınıfını nasıl oluşturacağınız aşağıda açıklanmıştır. Bu aslında için görüntülenen bir ipucu dul menü öğeleri!
İlk olarak, WM_MENUSELECT Windows mesajını işlemeniz gerekir:
tip
TForm1 = sınıf(TForm)
...
özel
prosedür WMMenuSelect (var Msg: TWMMenuSelect); İleti WM_MENUSELECT;
son...
uygulama...
prosedür TForm1.WMMenuSelect (var Msg: TWMMenuSelect);
var menuItem: TMenuItem; hSubMenu: HMENU;
başla
miras; // TCustomForm (böylece Uygulama. İpucu atandı)
menuItem: = sıfır;
Eğer (Hata. Menü <> $ FFFF) veya (Hata. IDItem <> 0) sonra
başla
Eğer Msg. MenuFlag ve MF_POPUP = MF_POPUP sonra
başla
hSubMenu: = GetSubMenu (Msg. Menü, Msg. IDItem);
menuItem: = Öz. Menü. FindItem (hSubMenu, fkHandle);
son
Başka
başla
menuItem: = Öz. Menü. FindItem (Msg. IDItem, fkCommand);
son;
son; miHint. DoActivateHint (menuItem);
son; (* WMMenuSelect *)
Hızlı bilgi: WM_MENUSELECT mesajı, kullanıcı bir menü öğesini seçtiğinde (ancak tıklatmadığında) menünün sahip penceresine gönderilir. TMenu sınıfının FindItem yöntemini kullanarak, seçili menü öğesini alabilirsiniz. FindItem işlevinin parametreleri alınan iletinin özellikleriyle ilgilidir. Farenin hangi menü öğesinin üzerinde olduğunu öğrendikten sonra, TMenuItemHint sınıfının DoActivateHint yöntemini çağırırız. MiHint değişkeni "var miHint: TMenuItemHint" olarak tanımlanır ve Form'un içinde oluşturulur. OnCreate olay işleyicisi.
Şimdi, geriye kalan TMenuItemHint sınıfının uygulanmasıdır.
Arayüz kısmı:
TMenuItemHint = sınıf(THintWindow)
özel
activeMenuItem: TMenuItem;
showTimer: TTimer;
hideTimer: TTimer;
prosedür HideTime (Gönderen: TObject);
prosedür ShowTime (Gönderen: TObject);
halka açık
inşaatçı Oluştur (AOwner: TComponent); geçersiz kılma;
prosedür DoActivateHint (menuItem: TMenuItem);
çöp yakma fırını yok; geçersiz kılma;
son;
Temel olarak, DoActivateHint işlevi, TMenuItem'in İpucu özelliğini (atanmışsa) kullanarak THintWindow'un ActivateHint yöntemini çağırır. ShowTimer, ipucu gösterilmeden önce Uygulamanın HintPause uygulamasının geçmesini sağlamak için kullanılır. HideTimer Uygulama kullanır. İpucuGizle Belirli bir aralıktan sonra ipucu penceresini gizlemek için duraklatın.
Menü Öğesi İpuçlarını Kullanma
Bazıları menü öğeleri için ipuçlarını görüntülemenin iyi bir tasarım olmadığını söylese de, menü öğesi ipuçlarını görüntülemenin durum çubuğu kullanmaktan çok daha iyi olduğu durumlar vardır. En son kullanılan (MRU) menü öğesi listesi böyle bir durumdur. Özel görev çubuğu menüsü başka bir menüdür.