Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Delphi
Speciální dialog
special_dialog
2. srpna 2001, 00.00 | Potřebujete v dialogu zobrazit další komponenty, například CheckBox nebo SpeedButton ? Není nic jednoduššího, než si přečíst tento článek, ve kterém se vše dozvíte !
Vadí vám, že standartní windows dialog volaný přes MessageDlg vás omezuje tím, že můžete použít pouze vlastní text, a k tomu si vybrat některou z ikon a sady tlačítek ? Chtěli byste vytvořit dialog, který by obsahoval další komponentu, například známý CheckBox "Show this message again" ? Tak právě pro vás je zde dnešní článek, ve kterém se vše potřebné dozvíte.
K vytvoření nového dialogu použijeme funkci CreateMessageDialog, která má následující parametry:
function CreateMessageDialog(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons): TForm;
- Msg - text dialogu
- DlgType - typ dialogu:
- mtWarning -
- mtError -
- mtInformation -
- mtConfirmation -
- mtCustom - bez ikony
- mtWarning -
- Buttons - tlačítka na dialogu
- buď určíte každé zvlášť, na výběr máte z těchto:
mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mnNoToAll, mbYesToAll, mbHelp - nebo si vyberete z těchto třech možností:
mbYesNoCancel, mbOKCancel, mbAbortRetryIgnore
- buď určíte každé zvlášť, na výběr máte z těchto:
Jak vidíte, z celé procedury vznikce formulář, a o ten nám právě jde. Než si totiž dialog zobrazíme, pohrajeme si trochu z formulářem, změníme font, barvu nebo cokoliv jiného, přidáme další komponenty... Co kdo chce. Dáme se tedy do programování.
Začneme tím, že spustíme delphi a vytvoříme nový projekt. Na formulář vložíme pouze komponentu button, a ihned k ní vytvoříme proceduru OnClick. Nejprve si definujeme náš dialog typu TForm, potom komponentu CheckBox a nakonec jsem ještě přidal i SpeedButton, který bude sloužit pro zobrazení nápovědy. Další krok bude vytvoření dialogu a obou komponent. Dejte si pozor, aby jste při vytváření CheckBoxu a SpeedButtonu nastavili AOwner na náš dialog, jinak se vám vytvoří na formuláři, a to určitě nechcete. Dále se pokusíme změnit titulek (Caption) dialogu a také jeho výšku, aby bylo místo pro checkbox. Následuje vytvoření CheckBoxu, nastavení parametrů a to stejné i se SpeedButtonem. Pro SpeedButton si ještě vytvoříme proceduru HelpClick, do které si můžete doplnit váš libovolný kód. Po tomto kroku postupně prozkoumáme jednu komponentu po druhé, a pokud se bude jednat o Label, změníme font na tučný. Také počeštíme tlačítka z Yes na Ano a No na Ne. Konečně se dostáváme k zobrazení dialogu - po jeho zavření ještě zjistíme stav CheckBoxu a můžete všechny komponenty uvolnit. To by bylo asi tak ve stručnosti, zde je kompletní kód:
|
Ve vkládání komponent se vám meze nekladou, ovšem nezapomínejte, že méně je někdy více. A také zvažte, zda-li by už nebylo jednodušší vytvořit nový formulář, dát na něj pár komponent a zobrazovat pak jej. Každopádně toto je jedno z dalších možných řešení, jaké použijete je pouze na vás.
Nakonec zde ještě přikládám mnou vytvořené, trochu hezčí ikony do dialogů (16 barev je málo :():
Download
ZDE si můžete stáhnout dnes vytvořený program a jeho zdrojáky (180 kB)
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007