Өмір

Delphi көмегімен TopMost жүйесінің модальді хабарлама жолағын қалай көрсету керек

Delphi көмегімен TopMost жүйесінің модальді хабарлама жолағын қалай көрсету керек


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.

Жұмыс үстелі (Windows) қосымшаларымен, a хабарлама (диалог) терезесі қосымшаның пайдаланушысына қандай да бір әрекеттерді орындау керек екенін, қандай-да бір операция аяқталғанын немесе жалпы пайдаланушылардың назарын аудару үшін ескерту үшін қолданылады.

Delphi-де пайдаланушыға хабарламаны көрсетудің бірнеше әдісі бар. Сіз ShowLessage немесе InputBox сияқты RTL-де ұсынылған кез-келген дайын хабарламаны қолдана аласыз; немесе сіз өзіңіздің жеке диалогтық терезеңізді жасай аласыз (қайта пайдалану үшін): CreateMessageDialog.

Жоғарыдағы барлық диалогтық терезелердегі жалпы мәселе - бұл қолданушыға қолданушының белсенді болуын талап етеді. «Белсенді» - бұл сіздің бағдарламаңызда «енгізу фокусы» болған кезде.

Егер сіз шынымен пайдаланушының назарын аударғыңыз келсе және оларды басқа ештеңе жасамасаңыз, мүмкін болуыңыз керек сіздің бағдарламаңыз белсенді болмаса да, жүйенің модальды ең жоғарғы хабарламасының жолағын көрсетіңіз.

Жүйелік-модальдық ең көп хабарламалар терезесі

Бұл күрделі болып көрінуі мүмкін, бірақ іс жүзінде олай емес.

Delphi Windows API қоңырауларының көпшілігіне оңай қол жеткізе алатындықтан, «MessageBox» Windows API функциясын орындау оңай емес.

«Windows.pas» қондырғысында анықталған - Delphi-дің кез-келген формасының әдепкі бойынша енгізілген модулі, Хабарлама функциясы хабарламалар терезесін жасайды, көрсетеді және жұмыс істейді. Хабарлама терезесінде алдын-ала анықталған белгішелер мен батырмалардың кез-келген тіркесімімен бірге бағдарламамен анықталған хабарлама мен тақырып болады.

Міне, MessageBox қалай жарияланған:

функциясы бар MessageBox (
hWnd: HWND;
lpText,
lpCaption: PAnsiChar;
uType: кардинал): бүтін;

Бірінші параметр, hwnd, жаса- болатын хабарламаның терезесінің иесінің терезесінің дескриптор. егер сіз диалогтың терезесі хабарлама терезесін жасасаңыз, диалогтың терезесінің тұтқасын келесідей қолданыңыз hWnd параметрі.

The lpText және lpCaption хабарлама жолағында көрсетілетін тақырыпты және хабарлама мәтінін көрсетіңіз.

Соңғысы uType параметр және ең қызықты. Бұл параметр диалогтың терезесінің мазмұнын және тәртібін анықтайды. Бұл параметр түрлі жалаулардың тіркесімі болуы мүмкін.

Мысал: Жүйе күні / уақыты өзгерген кезде жүйенің модальді ескерту терезесі

Жоғары деңгейдегі модальді хабарламалар терезесін құру мысалын қарастырайық. Сіз жүйенің күні / уақыты өзгерген кезде, мысалы, «Күн мен уақыт сипаттары» басқару тақтасы қосымшасын қолданып, жұмыс істеп тұрған барлық қосымшаларға жіберілген Windows хабарламасын өңдейсіз.

MessageBox функциясы келесі түрде шақырылады:

Windows.MessageBox (

тұтқасы,

'Бұл жүйелік модальды хабарлама' белсенді емес қосымшадан '# 13 # 10',

'Белсенді емес бағдарламадан хабарлама!',

MB_SYSTEMMODAL немесе MB_SETFOREGROUND немесе MB_TOPMOST немесе MB_ICONHAND);

Ең маңызды бөлік - бұл соңғы параметр. «MB_SYSTEMMODAL немесе MB_SETFOREGROUND немесе MB_TOPMOST» хабарлама терезесі жүйелік, ең жоғарғы және басты терезе болуын қамтамасыз етеді.

  • MB_SYSTEMMODAL жалау пайдаланушыға хабарламаның терезесіне жауап беруді қамтамасыз етеді hWnd параметрмен анықталған терезеде жұмысты жалғастыру алдында.
  • MB_TOPMOST жалауша хабарламаның терезесі барлық ең жоғары емес терезелердің үстінде орналасуы керек және терезе өшірулі болса да олардың үстінде болуы керек екенін көрсетеді.
  • MB_SETFOREGROUND жалауша хабарламаның терезесінің алдыңғы терезеге айналуын қамтамасыз етеді.

Мысалдың толық коды (TForm «1» бірлігінде анықталған «Form1»):

блок 1-блок;

интерфейсі


қолданады

Windows, хабарламалар, SysUtils, нұсқалар, сыныптар,

Графика, басқару элементтері, формалар, диалогтар, ExtCtrls;

түрі

TForm1 = сынып(TForm)
  

жеке

    процедурасы WMTimeChange (var Ms: TMessage); хабар WM_TIMECHANGE;
  

қоғамдық

    {Жалпыға ортақ мәлімдемелер}

  Соңы;

var

1-форма: TForm1;

іске асыру{$ R * .dfm}

процедурасы TForm1.WMTimeChange (var Ms: TMessage);

баста

Windows.MessageBox (

тұтқасы,

'Бұл жүйелік модальды хабарлама' белсенді емес қосымшадан '# 13 # 10',

'Белсенді емес бағдарламадан хабарлама!',

MB_SYSTEMMODAL немесе MB_SETFOREGROUND немесе MB_TOPMOST немесе MB_ICONHAND);

Соңы;

Соңы.

Осы қарапайым қолданбаны пайдаланып көріңіз. Бағдарлама кішірейтілгеніне немесе жоқ дегенде басқа қолданбаның белсенді екеніне көз жеткізіңіз. «Күн мен уақыттың сипаттамалары» Басқару тақтасының қосымшасын іске қосыңыз және жүйенің уақытын өзгертіңіз. Сіз «Жарайды» батырмасын басқаннан кейін (қосымшаның ішінде) сіздің белсенді емес қосымшаның модальды ең жоғарғы модулі туралы хабарлама терезесі шығады.



Пікірлер:

  1. Tygorisar

    Granted, very funny opinion

  2. Talbott

    Баспаға апармаңыз!

  3. Nahiossi

    Only posmeyte do it again!

  4. Gosheven

    Менің ойымша, сіз дұрыс емессіз. Біз оны талқылаймыз. Маған кешкі уақытта жазыңыз, біз оны жеңеміз.



Хабарлама жазыңыз