× Aktuálně z oboru

Programátoři po celém světě dnes slaví Den programátorů [ clanek/2018091300-programatori-po-celem-svete-dnes-slavi-den-programatoru/ ]
Celá zprávička [ clanek/2018091300-programatori-po-celem-svete-dnes-slavi-den-programatoru/ ]

Různé API funkce a zajímavosti

[ http://programujte.com/profil/20356-lubos-uhliarik/ ]Google [ ?rel=author ]       [ http://programujte.com/profil/118-zdenek-lehocky/ ]Google [ ?rel=author ]       23. 5. 2006       19 657×

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:

Přehled vracených 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.


Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2006052103-ruzne-api-funkce-a-zajimavosti/ ].