Štandardné boxy

29.11.2009 22:59

Štandardné boxy

V aplikáciách veľmi často potrebujeme získať od užívateľa nejaký vstup. Jedným z najčastejších užívateľských vstupov je odpoveď - potvrdenie, odmietnutie, alebo zrušenie. Okrem toho (nie úplne zriedka) nastáva situácia, kedy je potrebné užívateľa informovať o aktuálnom stave výpočtu, upozorniť ho na chybu alebo mu vynadať za zlý vstup.

Pre obidva zmienené prípady disponuje Delphi veľmi elegantným riešením - štandardnými dialógovými boxmi. Použitie týchto boxov je úplne triviálne, napriek tomu poskytujú širokú škálu volieb a možností zobrazenia.

ShowMessage

Ak potrebujeme vypísať jednu krátku informáciu (spravidla vetu), najľahšie použijeme procedúru ShowMessage.

Syntax:

procedure ShowMessage(const Msg: string);

Príklad:

ShowMessage(’Toto je krátka informácia, milý užívateľ.’);

MessageDlg

Všetko, čo vie ShowMessage, ale ešte omnoho viac, ponúka funkcia MessageDlg. Umožňuje pomerne veľkú variabilitu pri návrhu vzhľadu boxu.

Syntax:

function MessageDlg(const Msg: string;
    DlgType: TMsgDlgType;
    Buttons: TMsgDlgButtons;
    HelpCtx: Longint): Word;

Popis parametrov:

  • Msg: reťazec, ktorý chcete zobraziť
  • DlgType: indikuje účel dialogu. Možné hodnoty:
    • mtWarning – žltočierna ikonka znamenajúca výstrahu,
    • mtError – červená „stopka“ znamenajúca chybu,
    • mtInformation – modré písmeno "i" znamenajúca informáciu,
    • mtConfirmation – modrý otáznik znamenajúca otázku (žiadosť o potvrdenie),
    • mtCustom – na boxu nebude štandardne nič.
  • Buttons: indikuje, ktoré tlačidlá sa na dialógu objavia. Možné hodnoty:
    • mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mnNoToAll, mbYesToAll, mbHelp
    • Pozor, ide o množinu, preto musííme zvolené tlačidlá uvádzať vždy v hranatých zátvorkách, napr. [mbAbort, mbRetry, mbIgnore].
    • Jedinou výnimkou je použitie niektorej z preddefinovaných konštánt (napr. mbOKCancel má rovnaký význam ako [mbOK, mbCancel]).
  • HelpCtx: „context ID“ témy nápovedy, ktorý sa má objaviť, ak stisne užívateľ F1 (nebo klikne na tlačidlo Help) pri otvorenom dialógu. Ak nechceme použiť, necháme 0.

MessageDlg vracia hodnotu tlačidla, ktorého stisnutím užívateľ dialóg opustil. Možné hodnoty: mrNone, mrAbort, mrYes, mrOk, mrRetry, mrNo, mrCancel, mrIgnore, mrAll.

Titulok okienka bude rovnaký ako názov spustiteľného súboru s aplikáciou (teda názov projektu v Delphi). To platí aj o boxe vytvorenom procedúrou ShowMessage.

Príklad:

if MessageDlg('Súbor bol zmenený. Chcete ho uložiť? ',
    mtConfirmation, [mbYes, mbNo, mbCancel], 0) = mrYes then
    uloz_subor(aktualny);

MessageDlgPos

Jedinou väčšou nevýhodou funkcie MessageDlg je, že okienko sa otvorí uprostred obrazovky. To je niekedy veľmi nevhodné, našťastie v Delphi existuje rozšírená funkcia MessageDlgPos, ktorá má úplne rovnaké parametre ako MessageDlg, ale naviac disponuje možnosťou zadať súradnice, na ktorých sa má box objaviť:

function MessageDlgPos (const Msg: string;
    DlgType: TMsgDlgType;
    Buttons: TMsgDlgButtons;
    HelpCtx: Longint;
    X, Y: Integer): Word;

Späť

Vyhľadávanie

(c) 2008 Všetky práva vyhradené.