Са десктоп (Виндовс) апликацијама, а порука (дијалог) оквир користи се да упозори корисника апликације да је потребно предузети неке акције, да је нека операција завршена или, уопште, како би привукла пажњу корисника.
Ин Делпхи, постоји неколико начина приказивања поруке кориснику. Можете или користити било коју од готових порука које приказују рутине дате у РТЛ-у, попут СховМессаге или ИнпутБок; или можете да креирате сопствени дијалошки оквир (за поновну употребу): ЦреатеМессагеДиалог.
Чест проблем са свим горе наведеним дијалошким оквирима је да они захтијевају да апликација буде активна како би се кориснику приказала. „Активно“ се односи на то када ваша апликација има „фокус улаза“.
Ако заиста желите да привучете пажњу корисника и спречи их да раде било шта друго, морат ћете то моћи прикажите горњу кутију са системским модалима чак и када ваша апликација није активна.
Системски модул Топ Мост Бок за поруке
Иако ово може звучати компликовано, у стварности то заиста није.
Будући да Делпхи може лако приступити већини Виндовс АПИ позива, извршавање функције "МессагеБок" Виндовс АПИ функције ће урадити трик.
Дефинисано у јединици "виндовс.пас" - оној која је подразумевано укључена у клаузулу употребе сваког Делпхи обрасца, МессагеБок функција креира, приказује и управља кутијом за поруке. Оквир за поруку садржи поруку и наслов који је дефинисан апликацијом, заједно са било којом комбинацијом унапред дефинисаних икона и тастера.
Ево како је проглашен МессагеБок:
функција МессагеБок (
хВнд: ХВНД;
лпТект,
лпЦаптион: ПАнсиЦхар;
уТипе: Цардинал): цијели број;
Први параметар, хвнд, је дршка прозора власника оквира за поруке који ће се креирати. ако креирате оквир за поруке док је присутан дијалог, користите ручицу дијалошког оквира као хВнд параметар.
Тхе лпТект и лпЦаптион одредите наслов и текст поруке који је приказан у пољу за поруке.
Последњи је уТипе параметар и најзанимљивији је. Овај параметар одређује садржај и понашање дијалошког оквира. Овај параметар може бити комбинација различитих застава.
Пример: Оквир за упозорење за модални систем када се системски датум / време промене
Погледајмо пример стварања горњег оквира система за модалне модалитете система. Ти ћеш руковање Виндовс поруком која се шаље у све покренуте апликације када промене датума / времена система—Примјерице помоћу алата Цонтрол Панел „Својства датума и времена“.
Функција МессагеБок називаће се као:
Виндовс. МессагеБок (
ручка,
'Ово је системска порука' # 13 # 10 'од неактивне апликације',
'Порука неактивне апликације!',
МБ_СИСТЕММОДАЛ или МБ_СЕТФОРЕГРОУНД или МБ_ТОПМОСТ или МБ_ИЦОНХАНД);
Најважнији део је последњи параметар. "МБ_СИСТЕММОДАЛ или МБ_СЕТФОРЕГРОУНД или МБ_ТОПМОСТ" осигурава да је оквир поруке системски модан, највиши врх и постаје прозор предњег плана.
- МБ_СИСТЕММОДАЛ застава осигурава да корисник мора одговорити на оквир за поруку прије него што настави рад у прозору који је идентификован хВнд параметром.
- МБ_ТОПМОСТ застава одређује да оквир за поруку треба поставити изнад свих најгорњих прозора и треба да остане изнад њих, чак и када је прозор деактивиран.
- МБ_СЕТФОРЕГРОУНД застава осигурава да оквир за поруку постане прозор у првом плану.
Ево пуног примера кода (ТФорм назван "Форм1" дефинисан у јединици "унит1"):
јединица Јединица 1;
интерфејс
користи
Виндовс, Поруке, СисУтилс, Варијанте, Класе,
Графика, контроле, обрасци, дијалози, ЕктЦтрлс;
тип
ТФорм1 = класа(ТФорм)
приватни
процедура ВМТимеЦханге (вар Мсг: ТМессаге); порука ВМ_ТИМЕЦХАНГЕ;
јавни
{Јавне изјаве}
крај;
вар
Форм1: ТФорм1;
имплементација{$ Р * .дфм}
процедура ТФорм1.ВМТимеЦханге (вар Мсг: ТМессаге);
започети
Виндовс. МессагеБок (
ручка,
'Ово је системска порука' # 13 # 10 'од неактивне апликације',
'Порука неактивне апликације!',
МБ_СИСТЕММОДАЛ или МБ_СЕТФОРЕГРОУНД или МБ_ТОПМОСТ или МБ_ИЦОНХАНД);
крај;
крај.
Покушајте покренути ову једноставну апликацију. Проверите да ли је апликација минимизирана или барем да је активна нека друга апликација. Покрените апплет управљачке плоче „Својства датума и времена“ и промените системско време. Чим притиснете дугме „Ок“ (на апплет) биће приказан горњи системски модал из ваше неактивне апликације.