Difference between revisions of "Dialog Examples/sk"
m (→MessageDLG: typo correction) |
m (Fixed syntax highlighting) |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 17: | Line 17: | ||
Správové dialógy zobrazujú správu a čakajú na stlačenie klávesy alebo kliknutie myšou. | Správové dialógy zobrazujú správu a čakajú na stlačenie klávesy alebo kliknutie myšou. | ||
===ShowMessage=== | ===ShowMessage=== | ||
− | < | + | <syntaxhighlight lang=pascal> Procedure ShowMessage (const Msg: string); |
− | { Defined in Dialogs.pp }</ | + | { Defined in Dialogs.pp }</syntaxhighlight> |
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.<br> | 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.<br> | ||
Line 25: | Line 25: | ||
Príklad: | Príklad: | ||
− | < | + | <syntaxhighlight lang=pascal> Program LazMessage; |
Uses Dialogs; | Uses Dialogs; | ||
begin | begin | ||
− | ShowMessage (' | + | ShowMessage ('Toto je správa z Lazarusu!') |
− | end.</ | + | end.</syntaxhighlight> |
===MessageBox=== | ===MessageBox=== | ||
− | < | + | <syntaxhighlight lang=pascal> Function Application.MessageBox (Text, Caption: PChar; Flags: longint) : Integer; |
{ Defined in Forms.pp as part of TApplication; hence must be called as Application.Messagebox () | { Defined in Forms.pp as part of TApplication; hence must be called as Application.Messagebox () | ||
− | or using the 'with Application do ...' construct }</ | + | or using the 'with Application do ...' construct }</syntaxhighlight> |
Parametre: | Parametre: | ||
Line 47: | Line 47: | ||
Príklad: | Príklad: | ||
− | < | + | <syntaxhighlight lang=pascal> Uses Forms, Dialogs, LCLType; |
Procedure DisplayMessageBox; | Procedure DisplayMessageBox; | ||
Line 57: | Line 57: | ||
if reply = IDYES then MessageBox ('Yes ', 'Reply',MB_ICONINFORMATION) | if reply = IDYES then MessageBox ('Yes ', 'Reply',MB_ICONINFORMATION) | ||
else MessageBox ('No ', 'Reply', MB_ICONHAND); | else MessageBox ('No ', 'Reply', MB_ICONHAND); | ||
− | end;</ | + | end;</syntaxhighlight> |
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. | 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. | ||
Line 64: | Line 64: | ||
===MessageDLG=== | ===MessageDLG=== | ||
− | < | + | <syntaxhighlight lang=pascal> function MessageDlg(const aMsg: string; DlgType: TMsgDlgType; |
Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer; | Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer; | ||
function MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType; | function MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType; | ||
− | Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;</ | + | Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;</syntaxhighlight> |
Táto funkcia má dve verzie, teda prvý parameter 'Caption' je voliteľný, ak je vynechaný nie je zobrazený Titulok. | Táto funkcia má dve verzie, teda prvý parameter 'Caption' je voliteľný, ak je vynechaný nie je zobrazený Titulok. | ||
Line 74: | Line 74: | ||
Príklad: | Príklad: | ||
− | < | + | <syntaxhighlight lang=pascal> Uses forms, dialogs, lcltype, controls; |
procedure TryMessageDlg; | procedure TryMessageDlg; | ||
Line 82: | Line 82: | ||
then | then | ||
{ Execute rest of Program }; | { Execute rest of Program }; | ||
− | end;</ | + | end;</syntaxhighlight> |
− | <center> | + | <center> [[Image:Question.png]] </center> |
− | + | ||
+ | == Dialógy textového vstupu == | ||
+ | Dialógy textového vstupu, zobrazujú správu a dovoľujú používateľovi zadať požadovanú textovú hodnotu. | ||
− | |||
===InputBox=== | ===InputBox=== | ||
− | |||
− | < | + | <syntaxhighlight lang=pascal>Function InputBox(const ACaption, APrompt, ADefault : String) : String;</syntaxhighlight> |
− | + | 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. | |
Príklad: | Príklad: | ||
− | < | + | <syntaxhighlight lang=pascal> Uses forms, lcltype, dialogs, controls; |
procedure TryInputBox; | procedure TryInputBox; | ||
Line 104: | Line 104: | ||
'Please type in some information', 'Some sample text'); | 'Please type in some information', 'Some sample text'); | ||
ShowMessage (userstring) | ShowMessage (userstring) | ||
− | end;</ | + | end;</syntaxhighlight> |
===InputQuery=== | ===InputQuery=== | ||
− | < | + | <syntaxhighlight lang=pascal> Function InputQuery(const ACaption, APrompt : String; |
MaskInput : Boolean; var Value : String) : Boolean; | MaskInput : Boolean; var Value : String) : Boolean; | ||
Function InputQuery(const ACaption, APrompt : String; | Function InputQuery(const ACaption, APrompt : String; | ||
− | var Value : String) : Boolean;</ | + | var Value : String) : Boolean;</syntaxhighlight> |
− | + | 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. | |
Príklad: | Príklad: | ||
− | < | + | <syntaxhighlight lang=pascal> Uses forms, lcltype, dialogs, controls; |
procedure TryInputQuery; | procedure TryInputQuery; | ||
Line 128: | Line 128: | ||
ShowMessage (userstring); | ShowMessage (userstring); | ||
end | end | ||
− | end;</ | + | end;</syntaxhighlight> |
− | |||
− | |||
− | <center> | + | <center>[[Image:MessageDlgQuestion.png]] [[Image:DontBeSillly.png]]</center> |
===PasswordBox=== | ===PasswordBox=== | ||
− | < | + | <syntaxhighlight lang=pascal> Function PasswordBox(const ACaption, APrompt : String) : String;</syntaxhighlight> |
− | |||
− | |||
− | = | + | 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'''). |
− | + | ==Konštanty a Typy v správových dialógoch == | |
− | + | 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: | |
− | + | <syntaxhighlight lang=pascal> const { Defined in LCLType.pp }</syntaxhighlight> | |
− | |||
− | < | + | Celočíslené konštanty pre definovanie typov tlačítiek a ikon pre zobrazenie v '''MessageBox''' |
+ | <syntaxhighlight lang=pascal> MB_OK = $00000000; | ||
MB_OKCANCEL = $00000001; | MB_OKCANCEL = $00000001; | ||
MB_ABORTRETRYIGNORE = $00000002; | MB_ABORTRETRYIGNORE = $00000002; | ||
Line 161: | Line 157: | ||
MB_ICONWARNING = MB_ICONEXCLAMATION; | MB_ICONWARNING = MB_ICONEXCLAMATION; | ||
MB_ICONERROR = MB_ICONHAND; | MB_ICONERROR = MB_ICONHAND; | ||
− | MB_ICONINFORMATION = MB_ICONASTERICK;</ | + | MB_ICONINFORMATION = MB_ICONASTERICK;</syntaxhighlight> |
− | |||
− | |||
− | < | + | Celočíselné konštanty definujúce návratovú hodnotu z '''MessageBox''', v závislosti na stlačenom tlačítku |
+ | <syntaxhighlight lang=pascal> IDOK = 1; ID_OK = IDOK; | ||
IDCANCEL = 2; ID_CANCEL = IDCANCEL; | IDCANCEL = 2; ID_CANCEL = IDCANCEL; | ||
IDABORT = 3; ID_ABORT = IDABORT; | IDABORT = 3; ID_ABORT = IDABORT; | ||
Line 173: | Line 168: | ||
IDNO = 7; ID_NO = IDNO; | IDNO = 7; ID_NO = IDNO; | ||
IDCLOSE = 8; ID_CLOSE = IDCLOSE; | IDCLOSE = 8; ID_CLOSE = IDCLOSE; | ||
− | IDHELP = 9; ID_HELP = IDHELP;</ | + | IDHELP = 9; ID_HELP = IDHELP;</syntaxhighlight> |
− | + | Definuje, či je predvolené prvé, druhé alebo tretie tlačítko | |
− | < | + | <syntaxhighlight lang=pascal> MB_DEFBUTTON1 = $00000000; |
MB_DEFBUTTON2 = $00000100; | MB_DEFBUTTON2 = $00000100; | ||
MB_DEFBUTTON3 = $00000200; | MB_DEFBUTTON3 = $00000200; | ||
− | MB_DEFBUTTON4 = $00000300;</ | + | MB_DEFBUTTON4 = $00000300;</syntaxhighlight> |
− | + | 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]''' | |
− | + | Typy prepoužitie v '''MessageDlg''', ktorý potrebuje parametre AType typu '''TMsgDlgType''' a AButtons typu '''TMSgDlgButtons''' | |
− | < | + | <syntaxhighlight lang=pascal> { Defined in Dialogs.pp } |
type | type | ||
TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation, | TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation, | ||
Line 207: | Line 202: | ||
mbOk, mbOK, mbCancel, mbHelp, mbYes, mbNo, | mbOk, mbOK, mbCancel, mbHelp, mbYes, mbNo, | ||
mbClose, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToALl, mbYesToAll | mbClose, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToALl, mbYesToAll | ||
− | ); | + | );</syntaxhighlight> |
− | + | <syntaxhighlight lang=pascal> { Defined in Controls.pp } | |
const | const | ||
mrNone = 0; | mrNone = 0; | ||
Line 222: | Line 217: | ||
mrNoToAll = mrNone + 9; | mrNoToAll = mrNone + 9; | ||
mrYesToAll = mrNone + 10; | mrYesToAll = mrNone + 10; | ||
− | mrLast = mrYesToAll;</ | + | mrLast = mrYesToAll;</syntaxhighlight> |
---- | ---- | ||
− | This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples version]. | + | *Initial translation by --[[User:Slavko|Komunista]] 20:57, 17 November 2008 (CET) |
+ | *This page has been imported from the epikwiki [http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples version]. |
Latest revision as of 08:15, 13 February 2020
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
日本語 (ja) │
polski (pl) │
русский (ru) │
slovenčina (sk) │
中文(中国大陆) (zh_CN) │
Niektoré užitočné dialógy
Toto sú niektoré užitočné dialógy, ktoré nenájdete v Palete komonentov:
- procedure ShowMessage (const Msg: string);
- function MessageBox (Text, Caption : PChar; Flags: Word): Integer;
- function MessageDlg (const Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: LongInt): Word;
- function InputBox (const ACaption, APrompt, ADefault: string); string;
- function InputQuery (const ACaption, APrompt: string; var Value: string): Boolean;
- function PasswordBox(const ACaption, APrompt : String) : String;
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.
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í.
Správové dialógy
Správové dialógy zobrazujú správu a čakajú na stlačenie klávesy alebo kliknutie myšou.
ShowMessage
Procedure ShowMessage (const Msg: string);
{ Defined in Dialogs.pp }
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.
Toto je modálne volanie procedúry, ktoré zobrazí okno, získa zameranie a tohoto sa nevzdá, pokiaľ nie je stlačené OK.
Príklad:
Program LazMessage;
Uses Dialogs;
begin
ShowMessage ('Toto je správa z Lazarusu!')
end.
MessageBox
Function Application.MessageBox (Text, Caption: PChar; Flags: longint) : Integer;
{ Defined in Forms.pp as part of TApplication; hence must be called as Application.Messagebox ()
or using the 'with Application do ...' construct }
Parametre:
- Text: reťazec, ktorý je v okne zobrazený ako otázka ale inštrukcia;
- Caption: textový štítok, ktorý je zobrazený na vrchu okna správy;
- 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.
Funkcia vracia hodnotu integer, ktorá zodpovedá stlačenému tlačítku; jej hodnota je daná odkazom na konštanty [IDOK..IDHELP]
Môže byť volaná ako procedúra (tj. formulácia 'MessageBox()' namiesto volania funkcie 'Variable := MessageBox()' – viz. príklad nižšie)
Príklad:
Uses Forms, Dialogs, LCLType;
Procedure DisplayMessageBox;
var reply, boxstyle: integer;
begin
with application do begin
boxstyle := MB_ICONQUESTION + MB_YESNO;
reply := MessageBox ('Press either button', 'MessageBoxDemo', boxstyle);
if reply = IDYES then MessageBox ('Yes ', 'Reply',MB_ICONINFORMATION)
else MessageBox ('No ', 'Reply', MB_ICONHAND);
end;
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.


MessageDLG
function MessageDlg(const aMsg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
function MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
Táto funkcia má dve verzie, teda prvý parameter 'Caption' je voliteľný, ak je vynechaný nie je zobrazený Titulok.
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]).
Príklad:
Uses forms, dialogs, lcltype, controls;
procedure TryMessageDlg;
begin
if MessageDlg ('Question', 'Do you wish to Execute?', mtConfirmation,
[mbYes, mbNo, mbIgnore], 0) = mrYes
then
{ Execute rest of Program };
end;

Dialógy textového vstupu
Dialógy textového vstupu, zobrazujú správu a dovoľujú používateľovi zadať požadovanú textovú hodnotu.
InputBox
Function InputBox(const ACaption, APrompt, ADefault : String) : String;
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.
Príklad:
Uses forms, lcltype, dialogs, controls;
procedure TryInputBox;
var userstring: string;
begin
userstring := InputBox ('Get some text input',
'Please type in some information', 'Some sample text');
ShowMessage (userstring)
end;
InputQuery
Function InputQuery(const ACaption, APrompt : String;
MaskInput : Boolean; var Value : String) : Boolean;
Function InputQuery(const ACaption, APrompt : String;
var Value : String) : Boolean;
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.
Príklad:
Uses forms, lcltype, dialogs, controls;
procedure TryInputQuery;
var QueryResult: boolean;
userstring: string;
begin
if InputQuery ('Question', 'Type in some data', TRUE, userstring)
then ShowMessage (userstring)
else
begin
InputQuery ('Don''t be silly', 'Please try again', userstring);
ShowMessage (userstring);
end
end;


PasswordBox
Function PasswordBox(const ACaption, APrompt : String) : String;
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).
Konštanty a Typy v správových dialógoch
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:
const { Defined in LCLType.pp }
Celočíslené konštanty pre definovanie typov tlačítiek a ikon pre zobrazenie v MessageBox
MB_OK = $00000000;
MB_OKCANCEL = $00000001;
MB_ABORTRETRYIGNORE = $00000002;
MB_YESNOCANCEL = $00000003;
MB_YESNO = $00000004;
MB_RETRYCANCEL = $00000005;
MB_ICONHAND = $00000010;
MB_ICONQUESTION = $00000020;
MB_ICONEXCLAMATION = $00000030;
MB_ICONASTERICK = $00000040;
MB_ICONWARNING = MB_ICONEXCLAMATION;
MB_ICONERROR = MB_ICONHAND;
MB_ICONINFORMATION = MB_ICONASTERICK;
Celočíselné konštanty definujúce návratovú hodnotu z MessageBox, v závislosti na stlačenom tlačítku
IDOK = 1; ID_OK = IDOK;
IDCANCEL = 2; ID_CANCEL = IDCANCEL;
IDABORT = 3; ID_ABORT = IDABORT;
IDRETRY = 4; ID_RETRY = IDRETRY;
IDIGNORE = 5; ID_IGNORE = IDIGNORE;
IDYES = 6; ID_YES = IDYES;
IDNO = 7; ID_NO = IDNO;
IDCLOSE = 8; ID_CLOSE = IDCLOSE;
IDHELP = 9; ID_HELP = IDHELP;
Definuje, či je predvolené prvé, druhé alebo tretie tlačítko
MB_DEFBUTTON1 = $00000000;
MB_DEFBUTTON2 = $00000100;
MB_DEFBUTTON3 = $00000200;
MB_DEFBUTTON4 = $00000300;
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]
Typy prepoužitie v MessageDlg, ktorý potrebuje parametre AType typu TMsgDlgType a AButtons typu TMSgDlgButtons
{ Defined in Dialogs.pp }
type
TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation,
mtCustom);
TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore,
mbAll, mbNoToAll, mbYesToAll, mbHelp, mbClose);
TMsgDlgButtons = set of TMsgDlgBtn;
const
mbYesNoCancel = [mbYes, mbNo, mbCancel];
mbOKCancel = [mbOK, mbCancel];
mbAbortRetryIgnore = [mbAbort, mbRetry, mbIgnore];
MsgDlgBtnToBitBtnKind: array[TMsgDlgBtn] of TBitBtnKind = (
bkYes, bkNo, bkOK, bkCancel, bkAbort, bkRetry, bkIgnore,
bkAll, bkNoToAll, bkYesToAll, bkHelp, bkClose
);
BitBtnKindToMsgDlgBtn: array[TBitBtnKind] of TMsgDlgBtn = (
mbOk, mbOK, mbCancel, mbHelp, mbYes, mbNo,
mbClose, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToALl, mbYesToAll
);
{ Defined in Controls.pp }
const
mrNone = 0;
mrOK = mrNone + 1;
mrCancel = mrNone + 2;
mrAbort = mrNone + 3;
mrRetry = mrNone + 4;
mrIgnore = mrNone + 5;
mrYes = mrNone + 6;
mrNo = mrNone + 7;
mrAll = mrNone + 8;
mrNoToAll = mrNone + 9;
mrYesToAll = mrNone + 10;
mrLast = mrYesToAll;