Sign in Join
Wiki copytemporary

Dialog Examples/sk: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Dialog Examples/sk

OldNewLine
1+## Contents
2+
3+ * 1 Niektoré užitočné dialógy
4+ * 1.1 Správové dialógy
5+ * 1.1.1 ShowMessage
6+ * 1.1.2 MessageBox
7+ * 1.1.3 MessageDLG
8+ * 1.2 Dialógy textového vstupu
9+ * 1.2.1 InputBox
10+ * 1.2.2 InputQuery
11+ * 1.2.3 PasswordBox
12+ * 1.3 Konštanty a Typy v správových dialógoch
13+
14+# Niektoré užitočné dialógy
15+
16+Toto sú niektoré užitočné dialógy, ktoré nenájdete v Palete komonentov:
17+
18+ * procedure ShowMessage (const Msg: string);
19+ * function MessageBox (Text, Caption : PChar; Flags: Word): Integer;
20+ * function MessageDlg (const Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: LongInt): Word;
21+ * function InputBox (const ACaption, APrompt, ADefault: string); string;
22+ * function InputQuery (const ACaption, APrompt: string; var Value: string): Boolean;
23+ * function PasswordBox(const ACaption, APrompt : String) : String;
24+
25+Každý z týchto komponentov zobrazuje malé vyskakovacie dialógové okno, ktoré obsahuje nejaké informácie a vyžaduje odozvu používateľa: stlačenie tlačítka, zadanie textu alebo oboje. Programátor má minimálnu kontrolu nad formátom, veľkosťou alebo pozíciou týchto vyskakovacích okien, ale môže ovplyvňovať ich textový obsah.
26+Dôvodom prečo často existujú veľmi podobné alternatívy, je umožniť rôzne spôsoby volania komponentu, a získavania dát, z procedúr a funkcií.
27+
28+## Správové dialógy
29+
30+Správové dialógy zobrazujú správu a čakajú na stlačenie klávesy alebo kliknutie myšou.
31+
32+### ShowMessage
33+```
34+Procedure ShowMessage (const Msg: string);
35+
36+ { Defined in Dialogs.pp }
37+```
38+
39+Najjednoduchší správový dialóg: prijíma jednoduchý textový prarmeter, zobrazí ho v stereotypnom okne a pred vrátením, do volajúcej rutiny alebo programu, čaká na kliknutie myšou alebo kláves enter.
40+Toto je modálne volanie procedúry, ktoré zobrazí okno, získa zameranie a tohoto sa nevzdá, pokiaľ nie je stlačené OK.
41+
42+Príklad:
43+```
44+Program LazMessage;
45+ Uses Dialogs;
46+ begin
47+ ShowMessage ('Toto je správa z Lazarusu!')
48+ end.
49+```
50+
51+### MessageBox
52+```
53+Function Application.MessageBox (Text, Caption: PChar; Flags: longint) : Integer;
54+
55+ { Defined in Forms.pp as part of TApplication; hence must be called as Application.Messagebox ()
56+ or using the 'with Application do ...' construct }
57+```
58+
59+Parametre:
60+
61+ * **Text** : reťazec, ktorý je v okne zobrazený ako otázka ale inštrukcia;
62+ * **Caption** : textový štítok, ktorý je zobrazený na vrchu okna správy;
63+ * **Flags** : longint - integer vytvorený sčítaním rôznych konštánt, ktorými je definovaný obsah a správanie okna, napríklad **MB_ABORTRETRYIGNORE + MR_ICONQUESTION** nastaví, že aplikácia zobrazí ikonu otázky (?) v okne s tromi tlačítkami: ABORT, RETRY a IGNORE.
64+
65+Funkcia vracia hodnotu integer, ktorá zodpovedá stlačenému tlačítku; jej hodnota je daná odkazom na konštanty [IDOK..IDHELP]
66+
67+Môže byť volaná ako procedúra (tj. formulácia 'MessageBox()' namiesto volania funkcie 'Variable := MessageBox()' – viz. príklad nižšie)
68+
69+Príklad:
70+```
71+Uses Forms, Dialogs, LCLType;
72+
73+ Procedure DisplayMessageBox;
74+ var reply, boxstyle: integer;
75+ begin
76+ with application do begin
77+ boxstyle := MB_ICONQUESTION + MB_YESNO;
78+ reply := MessageBox ('Press either button', 'MessageBoxDemo', boxstyle);
79+ if reply = IDYES then MessageBox ('Yes ', 'Reply',MB_ICONINFORMATION)
80+ else MessageBox ('No ', 'Reply', MB_ICONHAND);
81+ end;
82+```
83+
84+Všimnite si, že v tomto príklade sú reťazce 'Yes' a 'No' doplnené medzerami; inak by okno nebolo dosť široké na správne zobrazenie titulku.
85+
86+[![MessageBoxDemo.png](/wiki-images/c/c2/MessageBoxDemo.png)](</File:MessageBoxDemo.png>) [![ReplyYes.png](/wiki-images/0/06/ReplyYes.png)](</File:ReplyYes.png>)
87+
88+### MessageDLG
89+```
90+function MessageDlg(const aMsg: string; DlgType: TMsgDlgType;
91+ Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
92+ function MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType;
93+ Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
94+```
95+
96+Táto funkcia má dve verzie, teda prvý parameter 'Caption' je voliteľný, ak je vynechaný nie je zobrazený Titulok.
97+
98+Toto je najkomplexnejší a najprepracovanejší správový dialóg, ktorý poskytuje programátorovi značnú kontrolu nad vzhľadom dialógového okna. Parametre definujúce typ okna a jeho ikonu sú typy, namiesto konštánt a tlačítka môžu byť zadané ako množina v lomených zátvorkách, napr. **[mbRetry, mbIgnore, mbAbort, mbCancel]**. Parameter **HelpCtx** aktuálne nie je implementovaný a musí bať nastavený na nulu. Návratová hodnota funkcie je identická ako stlačené tlačítko, reprezentovaná ako integer (viz nasledujúcu definície, [mrNone..mrAll]).
99+
100+Príklad:
101+```
102+Uses forms, dialogs, lcltype, controls;
103+
104+ procedure TryMessageDlg;
105+ begin
106+ if MessageDlg ('Question', 'Do you wish to Execute?', mtConfirmation,
107+ [mbYes, mbNo, mbIgnore], 0) = mrYes
108+ then
109+ { Execute rest of Program };
110+ end;
111+```
112+
113+[![Question.png](/wiki-images/3/30/Question.png)](</File:Question.png>)
114+
115+## Dialógy textového vstupu
116+
117+Dialógy textového vstupu, zobrazujú správu a dovoľujú používateľovi zadať požadovanú textovú hodnotu.
118+
119+### InputBox
120+```
121+Function InputBox(const ACaption, APrompt, ADefault : String) : String;
122+```
123+
124+Zobrazuje okno s definovaným nadpisom, otázku a čaká na používateľský vstup v textovom poli. Voliteľne môže byť pre textové pole definovaný aj predvolený reťazec. Používateľom zadaný text alebo predvolený reťazec je vrátený ako výsledok funkcie.
125+
126+Príklad:
127+```
128+Uses forms, lcltype, dialogs, controls;
129+
130+ procedure TryInputBox;
131+ var userstring: string;
132+ begin
133+ userstring := InputBox ('Get some text input',
134+ 'Please type in some information', 'Some sample text');
135+ ShowMessage (userstring)
136+ end;
137+```
138+
139+### InputQuery
140+```
141+Function InputQuery(const ACaption, APrompt : String;
142+ MaskInput : Boolean; var Value : String) : Boolean;
143+ Function InputQuery(const ACaption, APrompt : String;
144+ var Value : String) : Boolean;
145+```
146+
147+Dve verzie tejto funkcie, ktoré zobrazujú otázku a čakajú používateľský vstup textových dát; prvá verzia zahŕňa logický parameter **MaskInput** , ktorý určuje, či má byť používateľský vstup v textovom poli maskovaný hviezdičkami (ako pri zadávaní hesla), zatiaľ čo druhá túto vlastnosť vynecháva. Používateľom zadaný text je vrátený v parametri 'Value'; výsledkom funkcie je logická hodnota, ktorá vracia **TRUE** , ak bolo stlačené tlačítko OK alebo **FALSE** , ak bolo okno zatvorené iným spôsobom (napríklad kliknutím na ikonu 'Zatvoriť' v lište okna). Vynechanie parametra MaskInput má rovnaký výsledok ako jeho nastavenie na FALSE.
148+
149+Príklad:
150+```
151+Uses forms, lcltype, dialogs, controls;
152+
153+ procedure TryInputQuery;
154+ var QueryResult: boolean;
155+ userstring: string;
156+ begin
157+ if InputQuery ('Question', 'Type in some data', TRUE, userstring)
158+ then ShowMessage (userstring)
159+ else
160+ begin
161+ InputQuery ('Don''t be silly', 'Please try again', userstring);
162+ ShowMessage (userstring);
163+ end
164+ end;
165+```
166+
167+[![MessageDlgQuestion.png](/wiki-images/d/d0/MessageDlgQuestion.png)](</File:MessageDlgQuestion.png>) [![DontBeSillly.png](/wiki-images/c/ce/DontBeSillly.png)](</File:DontBeSillly.png>)
168+
169+### PasswordBox
170+```
171+Function PasswordBox(const ACaption, APrompt : String) : String;
172+```
173+
174+Správa sa veľmi podobne ako funkcia **InputQuery** s MaskInput = TRUE; rozdiel je, že heslo, ktoré bolo zadané je vrátené ako výsledok funkcie (ako **InputBox**).
175+
176+## Konštanty a Typy v správových dialógoch
177+
178+Niektoré konštanty a typy, ktoré majú vzťah k použitiu v dialógových oknách a sú preddefinované v knižnici LCL:
179+```
180+const { Defined in LCLType.pp }
181+```
182+
183+Celočíslené konštanty pre definovanie typov tlačítiek a ikon pre zobrazenie v **MessageBox**
184+```
185+MB_OK = $00000000;
186+ MB_OKCANCEL = $00000001;
187+ MB_ABORTRETRYIGNORE = $00000002;
188+ MB_YESNOCANCEL = $00000003;
189+ MB_YESNO = $00000004;
190+ MB_RETRYCANCEL = $00000005;
191+
192+ MB_ICONHAND = $00000010;
193+ MB_ICONQUESTION = $00000020;
194+ MB_ICONEXCLAMATION = $00000030;
195+ MB_ICONASTERICK = $00000040;
196+ MB_ICONWARNING = MB_ICONEXCLAMATION;
197+ MB_ICONERROR = MB_ICONHAND;
198+ MB_ICONINFORMATION = MB_ICONASTERICK;
199+```
200+
201+Celočíselné konštanty definujúce návratovú hodnotu z **MessageBox** , v závislosti na stlačenom tlačítku
202+```
203+IDOK = 1; ID_OK = IDOK;
204+ IDCANCEL = 2; ID_CANCEL = IDCANCEL;
205+ IDABORT = 3; ID_ABORT = IDABORT;
206+ IDRETRY = 4; ID_RETRY = IDRETRY;
207+ IDIGNORE = 5; ID_IGNORE = IDIGNORE;
208+ IDYES = 6; ID_YES = IDYES;
209+ IDNO = 7; ID_NO = IDNO;
210+ IDCLOSE = 8; ID_CLOSE = IDCLOSE;
211+ IDHELP = 9; ID_HELP = IDHELP;
212+```
213+
214+Definuje, či je predvolené prvé, druhé alebo tretie tlačítko
215+```
216+MB_DEFBUTTON1 = $00000000;
217+ MB_DEFBUTTON2 = $00000100;
218+ MB_DEFBUTTON3 = $00000200;
219+ MB_DEFBUTTON4 = $00000300;
220+```
221+
222+Parameter **Flags** funkcie **MessageBox** je vytvorený pomocou súčtu konštánt tlačítiek **[MB_OK..MB_RETRYCANCEL]** , voliteľnej konštanty ikony **[MB_ICONHAND..MB_ICONINFORMATION]** a voliteľnej konštanty predvoleného tlačítka **[MB_DEFBUTTON1..MB_DEFBUTTON3]**
223+
224+Typy prepoužitie v **MessageDlg** , ktorý potrebuje parametre AType typu **TMsgDlgType** a AButtons typu **TMSgDlgButtons**
225+```
226+{ Defined in Dialogs.pp }
227+ type
228+ TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation,
229+ mtCustom);
230+ TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore,
231+ mbAll, mbNoToAll, mbYesToAll, mbHelp, mbClose);
232+ TMsgDlgButtons = set of TMsgDlgBtn;
233+
234+ const
235+ mbYesNoCancel = [mbYes, mbNo, mbCancel];
236+ mbOKCancel = [mbOK, mbCancel];
237+ mbAbortRetryIgnore = [mbAbort, mbRetry, mbIgnore];
238+
239+ MsgDlgBtnToBitBtnKind: array[TMsgDlgBtn] of TBitBtnKind = (
240+ bkYes, bkNo, bkOK, bkCancel, bkAbort, bkRetry, bkIgnore,
241+ bkAll, bkNoToAll, bkYesToAll, bkHelp, bkClose
242+ );
243+
244+ BitBtnKindToMsgDlgBtn: array[TBitBtnKind] of TMsgDlgBtn = (
245+ mbOk, mbOK, mbCancel, mbHelp, mbYes, mbNo,
246+ mbClose, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToALl, mbYesToAll
247+ );
248+```
249+```
250+{ Defined in Controls.pp }
251+ const
252+ mrNone = 0;
253+ mrOK = mrNone + 1;
254+ mrCancel = mrNone + 2;
255+ mrAbort = mrNone + 3;
256+ mrRetry = mrNone + 4;
257+ mrIgnore = mrNone + 5;
258+ mrYes = mrNone + 6;
259+ mrNo = mrNone + 7;
260+ mrAll = mrNone + 8;
261+ mrNoToAll = mrNone + 9;
262+ mrYesToAll = mrNone + 10;
263+ mrLast = mrYesToAll;
264+```
265+
266+* * *
267+
268+ * Initial translation by --[Komunista](</User:Slavko> "User:Slavko") 20:57, 17 November 2008 (CET)
269+ * This page has been imported from the epikwiki [version](<http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples>).
270+
271+---
272+*From the Free Pascal wiki, page "Dialog Examples/sk", as the Internet Archive kept it on 2025-01-18. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history