Tento díl je věnován API funkcím a různým tipům.
Jak jsem již psal na konci minulého dílu, tak dnes se zaměřím na více různých drobných tipů a triků. Prvním bude API funkce MessageBox:
MessageBox(handle, Pchar('Toto je text který bude vypsán'), Pchar('Toto je nadpisek funkce'), MB_ICONINFORMATION);
Prvním parametrem je handle, druhým je text, který bude vypsán, a třetí text, který bude v nadpisku message boxu. Čtvrtý parametr je, jakého formátu message box bude. Těch formátu je více:
- MB_ICONINFORMATION
- Zobrazí se bublinka s „i“
- MB_ICONERROR
- Zobrazí se ikonka křížku
- MB_ICONEXCLAMATION
- Zobrazí se ikonka s vykřičníkem
- MB_ICONQUESTION
- Zobrazí se bublinka s otazníkem
- MB_ABORTRETRYIGNORE
- Message box bude obsahovat tři tlačítka: Přerušit, Opakovat a Přeskočit
- MB_OK
- Message box box bude obsahovat pouze jedno tlačítko: OK. Toto je defaultní.
- MB_OKCANCEL
- Message box bude obsahovat dvě tlačítka: OK a Storno
- MB_RETRYCANCEL
- Message box bude obsahovat dvě tlačítka: Opakovat a Storno
- MB_YESNO
- Message box bude obsahovat dvě tlačítka: Ano a Ne
- MB_YESNOCANCEL
- Message box bude obsahovat tři tlačítka: Ano, Ne a Storno
MessageBox vrací 0, když není dostatek paměti pro vytvoření MessageBoxu. Jinak vždy navrací jednu z těchto hodnot:
Hodnota | Numerická hodnota | Význam |
---|---|---|
IDOK | 1 | Uživatel stiskl tlačítko OK |
IDCANCEL | 2 | Uživatel stiskl tlačítko Storno |
IDABORT | 3 | Uživatel stiskl tlačítko Přerušit |
IDRETRY | 4 | Uživatel stiskl tlačítko Opakovat |
IDIGNORE | 5 | Uživatel stiskl tlačítko Přeskočit |
IDYES | 6 | Uživatel stiskl tlačítko Ano |
IDNO | 7 | Uživatel stiskl tlačítko Ne |
Čtvrtý parametr se může kombinovat. Jestliže tedy chcete, aby MessageBox vyhodil hlášku s otázkou a bylo tam, jestli chcete vypnout program nebo ne, musíte za čtvrtý parametr zadat MB_ICONQUESTION + MB_YESNO. Vše si ukážeme na příkladu:
...
var
odpoved:integer;
begin
odpoved := MessageBox(handle, Pchar(' Přejete si ukončit program?'), Pchar('Otázka'), MB_ICONQUESTION+MB_YESNO);
If odpoved = IDYES then begin
Application.terminate;
end else begin
MessageBox(handle, Pchar('Tak jedem dál'), Pchar('Upozornění'),MB_ICONEXCLAMATION);
end;
end;
...
Doufám, že je to všem jasné, a teď si ukážeme další tip. Nudí vás ty škaredé žluté Hinty, které vyskakují, když nad něčím podržíte kurzor? Mám pro vás radu, jak můžete jejich barvu změnit, a dokonce i nastavit dobu, po kterou budou zobrazeny, a jak dlouho budete muset kurzor držet nad dotyčnou komponentou. Takže teď vám ukážu, jak se tato barva dá změnit:
Application.HintColor := clGreen;
Z příkladu vyplývá, že teď budeme mít nastavenou zelené pozadí hintů. Teď slibovaná délka trvání hintu:
Application.HintHidePause := 6000;
Čas trvání, po který bude hint zobrazen, je udán v milisekundách. A do třetice po jak dlouhé době po najedení myší na daný objekt se hint objeví:
Application.HintPause := 2000;
Taktéž jako i u předchozího příkladu, čas je udán v milisekundách. Všechny tyto změny můžete dělat kdykoliv během běhu programu.
Další tip bude ke schování formuláře a i ikonky z taskbaru (to je ta dolní lišta). Zase se jedná o API funkci.
ShowWindow(handle formu nebo aplikace, parametr);
Parametrů je sice více, ale my si uvedeme jen dva parametry. SW_SHOW zobrazí okno, SW_HIDE schová okno. A první parametr, kterým je handle, určujeme, co chceme skrýt či zobrazit. Jestliže chceme skrýt jen formulář, postačí nám toto:
ShowWindow(handle, SW_HIDE);
A když budeme chtít schovat i tu ikonku z dolní lišty, budeme muset místo handle formu zadat handle aplikace:
ShowWindow(application.handle, SW_HIDE);
Toto je pro dnešek vše. Příště budeme zase pokračovat.