Ҳаёт

Чӣ гуна нишонҳои Маслиҳатҳои менюро дар барномаҳои Delphi нишон додан мумкин аст

Чӣ гуна нишонҳои Маслиҳатҳои менюро дар барномаҳои Delphi нишон додан мумкин аст


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Ҳангоми намоиш додани мушаххас, ё ҳангоми навиштани дастгоҳ, вақте ки муш дар болои ҷузъи меню мегузарад, забони рамзгузории мушаххасро барои барномаҳо Delphi истифода баред. Агар амволи "ShowHint" ба "ҳақ" таъин шуда бошад ва шумо ба хусусияти "hint" матн илова кунед, ин паём ҳангоми гузоштани муш дар болои компонент нишон дода мешавад (масалан, TButton).

Маслиҳатҳоро барои ҷузъҳои меню фаъол созед

Азбаски тариқи Windows тарроҳӣ шудааст, ҳатто агар шумо арзиши моликияти ишораи ашёро ба ҷузъи меню таъин карда бошед, ишораи поп-ап намоиш намешавад. Аммо, ашёҳои менюи оғозкунандаи Windows маслиҳатҳои намоиширо нишон медиҳанд. Менюи дӯстдошта дар Internet Explorer инчунин маслиҳатҳои ҷузъҳои менюро нишон медиҳанд.

Барои намоиш додани маслиҳатҳои ашёи меню дар сатри ҳолати ҳодиса OnHint аз тағирёбандаи барномаҳои глобалӣ дар барномаҳои Delphi истифода бурдан мумкин аст.

Windows паёмҳоро барои дастгирии як чорабинии анъанавии OnMouseEnter фош намекунад. Аммо, паёми WM_MENUSELECT вақте фиристода мешавад, ки корбар ҷузъи менюро интихоб мекунад.

Татбиқи WM_MENUSELECT аз TCustomForm (авлоди TForm) маслиҳати менюро ба "Application.Hint" таъин мекунад, то он метавонад дар чорабинии Application.OnHint истифода шавад.

Агар шумо хоҳед, ки ба менюи барномаи Delphi маслиҳатҳои поп-ап (менюи поп-ап) -ро илова кунед, диққати худро ба паёми WM_MenuSelect равона кунед.

Маслиҳатҳои поп

Азбаски шумо ба усули Application.ActivateHint барои намоиши равзанаи ишораи ашё барои менюҳо эътимод надоред (зеро коркарди меню пурра аз ҷониби Windows иҷро карда шудааст), барои гирифтани равзанаи маслиҳат шумо бояд нусхаи нави худ равзанаи хитро тавассути гирифтани синфи нав созед. аз "THintWindow."

Дар ин ҷо чӣ гуна эҷод кардани синфи TMenuItemHint аст. Ин бевазани хитоӣ аст, ки воқеан барои ашёҳои меню намоиш дода мешавад!

Аввалан, шумо бояд паёми WM_MENUSELECT Windows-ро коркард кунед:

намуди
TForm1 = синф(TForm)

хусусӣ
тартиби WMMenuSelect (var Нишон: TWMMenuSelect); паём WM_MENUSELECT;
Поён
татбиқ

тартиби
TForm1.WMMenuSelect (var Нишон: TWMMenuSelect);
var
menuItem: TMenuItem; hSubMenu: HMENU;
Оғоз

мерос гирифтааст; // аз TCustomForm (ба тавре ки Application.Hint таъин шудааст)
менюItem: = нил;
агар (Ms.MenuFlag $ FFFF) ё (Msg.IDItem 0) баъд
Оғоз
агар Ms.MenuFlag ва MF_POPUP = MF_POPUP баъд
Оғоз
hSubMenu: = GetSubMenu (Msg.Menu, Msg.IDItem);
menuItem: = Self.Menu.FindItem (hSubMenu, fkHandle);
Поён
дигар
Оғоз
menuItem: = Self.Menu.FindItem (Msg.IDItem, fkCommand);
Поён;
Поён; miHint.DoActivateHint (менюИтем);
Поён
; (* WMMenuSelect *)

Маълумоти зуд: Паёми WM_MENUSELECT ба тирезаи соҳиби меню фиристода мешавад, вақте ки корбар ҷузъи менюро интихоб мекунад (вале клик намекунад). Бо истифода аз усули FindItem синфи TMenu, шумо метавонед менюи интихобшударо ҳозир гиред. Параметрҳои функсияи FindItem ба хосиятҳои паёмҳои гирифташуда марбутанд. Пас аз он ки мо медонем, ки кадом ҷузъи менюи мушро тамом кардааст, мо усули DoActivateHintро аз синфи TMenuItemHint меномем. Тағирёбандаи miHint ҳамчун "var miHint: TMenuItemHint" муайян карда шудааст ва дар дастгоҳи чорабиниҳои OnCreate дар Form сохта шудааст.

Акнун, он чизе ки боқӣ мондааст, татбиқи синфи TMenuItemHint аст.

Ин аст қисми интерфейс:

TMenuItemHint = синф(ТоҷикТА)
хусусӣ

activMenuItem: TMenuItem;
showTimer: TTimer;
hideTimer: TTimer;
тартиби HideTime (Ирсолкунанда: TObject);
тартиби ShowTime (Ирсолкунанда: TObject);
ҷамъиятӣ

созанда Сохтан (AOwner: TComponent); сарфи назар мекунад;
тартиби DoActivateHint (менюItem: TMenuItem);
харобкунанда Нест кардан; сарфи назар мекунад;
Поён
;

Асосан, функсияи DoActivateHint усули ActivateHint -и THintWindow-ро бо истифодаи хусусияти TMenuItem's Hint (агар он таъин карда шуда бошад) меноманд. ShowTimer барои кафолат додани он, ки HintPause-и Ариза пеш аз намоиши ишораҳо мегузарад, истифода мешавад. HideTimer Application.HintHidePause -ро барои пинҳон кардани тирезаи хит пас аз фосилаи муайян истифода мекунад.

Истифодаи Маслиҳатҳои ашёи меню

Гарчанде баъзеҳо гуфта метавонанд, ки намоиши маслиҳатҳо барои ҷузъҳои меню тарҳи хуб нест, ҳолатҳое ҳастанд, ки дар асл нишон додани маслиҳатҳои ҷузъҳои меню нисбат ба истифодаи лавҳаи вазъ беҳтар аст. Рӯйхати навтарин рӯйхати менюи (MRU) яке аз чунин ҳолатҳо мебошад. Менюи панели фармоишӣ дигар аст.



Шарҳҳо:

  1. Hilton

    хуб, паём аъло

  2. Ajmal

    It is remarkable, rather valuable idea

  3. Istvan

    I don’t understand what you mean?

  4. Jules

    please periphrase

  5. Shalar

    Well done, you were visited by the excellent idea

  6. Murdoch

    Nothing!



Паём нависед