Sign in Join
Wiki copytemporary

Dialog Examples/fr: what changed

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

Title: Dialog Examples/fr

OldNewLine
1+# Quelques boîtes de dialogue pratiques
2+
3+Ci-dessous quelques boîtes de dialogue pratiques non incluses dans la palette de composant :
4+
5+- procedure ShowMessage (const Msg: string);
6+- function MessageBox (Text, Caption : PChar; Flags: Word): Integer;
7+- function MessageDlg (const Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: LongInt): Word;
8+- function InputBox (const ACaption, APrompt, ADefault: string); string;
9+- function InputQuery (const ACaption, APrompt: string; var Value: string): Boolean;
10+- function PasswordBox(const ACaption, APrompt : String) : String;
11+
12+Chacun de ces composants affiche une petite fenêtre contenant quelques informations et demande une réponse à l'utilisateur : d'appuyer sur un bouton, d'entrer un texte ou les deux. Le développeur n'a que peu de contrôle sur le format, la taille ou la position de ces boîtes de dialogue, mais peut influer sur leur contenu textuel.\
13+La raison pour laquelle il y a tant d'alternatives différentes , et de permettre différentes méthodes d'appel de composant et de recevoir des informations en retour depuis une procédure ou une fonction.
14+
15+## Message Dialogs
16+
17+Message dialogs affiche un message et attend qu'une touche soit appuyée ou un double-clic de la souris.
18+
19+### ShowMessage
20+
21+`Procedure ShowMessage (const Msg: string);`\
22+\
23+`{ Déclarée dans Dialogs.pp }`
24+
25+La boîte de dialogue renvoyant un message la plus simple : elle prend une simple chaîne de caractères en paramètre, l'affiche dans une fenêtre stéréotypée, et attend un clic de souris ou une touche appuyée avec de continuer le programme.\
26+C'est un appel de procédure modal, tant que le bouton OK n'est pas cliqué ou validé par entrée la fenêtre reste en avant plan et garde le focus, interdisant tout autre manipulation dans le programme.
27+
28+Exemple :
29+
30+``` pascal
31+ Program LazMessage;
32+ Uses Dialogs;
33+ begin
34+ ShowMessage ('C''est un message de Lazarus.')
35+ end.
36+```
37+
38+### MessageBox
39+
40+`Function Application.MessageBox (Text, Caption: PChar; Flags: longint) : Integer;`\
41+\
42+`{ Défini dans  Forms.pp comme une partie de TApplication; par conséquent doit être appelé par`\
43+`  Application.Messagebox () ou en utilisant la construction 'with Application do ...'}`
44+
45+Paramètres :
46+
47+- Text : la chaîne de caractères qui est affichée dans la boîte de dialogue ;
48+- Caption : la chaîne de caractère affiché dans la barre de titre de la boîte de dialogue ;
49+- Flags : longint – une constante qui peut définir le contenu et le comportement de la boîte de dialogue, par exemple MB_ABORTRETRYIGNORE + MB_ICONQUESTION fera en sorte que le programme affiche l'icône d'un point d'interrogation dans la boîte de dialogue (?) accompagné de trois boutons : ABORT RETRY IGNORE.
50+
51+La fonction renvoie un entier correspondant au bouton appuyé ; cette valeur peut être déterminée en faisant référence aux constantes \[IDOK..IDHELP\]
52+
53+Cette fonction peut être appelée en tant que procédure (ie comme 'MessageBox()' au lieu de 'Variable := MessageBox()' comme on le ferait normalement pour une appel de fonction – voir exemple ci-dessous)
54+
55+Exemple :
56+
57+``` pascal
58+ Uses Forms, Dialogs, LCLType;
59+
60+ Procedure DisplayMessageBox;
61+ var reply, boxstyle: integer;
62+ begin
63+ with application do
64+ begin
65+ boxstyle := MB_ICONQUESTION + MB_YESNO;
66+ reply := MessageBox ('Appuyez sur un bouton', 'MessageBoxDemo', boxstyle);
67+ if reply = IDYES then MessageBox ('Oui', 'Répondre',MB_ICONINFORMATION)
68+ else MessageBox ('Non', 'Répondre', MB_ICONHAND);
69+ end;
70+ end;
71+```
72+
73+<center>
74+
75+<figure>
76+<img src="MessageBoxDemo.png" title="MessageBoxDemo.png" />
77+<figcaption>MessageBoxDemo.png</figcaption>
78+</figure>
79+
80+</center>
81+
82+<center>
83+
84+<figure>
85+<img src="ReplyYes.png" title="ReplyYes.png" />
86+<figcaption>ReplyYes.png</figcaption>
87+</figure>
88+
89+</center>
90+
91+### MessageDLG
92+
93+`function MessageDlg(const aMsg: string; DlgType: TMsgDlgType; `\
94+`                   Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;`\
95+`function MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType; `\
96+`                   Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;`
97+
98+Il existe deux versions de cette fonction, si vous omettez de renseigner 'Caption', ce sera la première fonction qui sera appelée et 'Caption' sera vide dans la boîte de dialogue.
99+
100+C'est la plus complète et la plus aboutie des fonctions d'appel de boîte de dialogue, elle autorise au programmeur un contrôle maximal sur l'apparence de la boîte. Les paramètres définissent le type de boîte et son icône via une constante entière, et les boutons peuvent être spécifié via \[mbRetry, mbIgnore, mbAbort, mbCancel\]. Le paramètre HelpCtx n'est pas encore implémenté et doit être initialisé à zéro. La valeur de retour de cette fonction et la valeur correspondante au bouton appuyé, exprimée par un entier (voir les définitions plus bas, \[mrNone..mrAll\]).
101+
102+Exemple :
103+
104+``` pascal
105+ Uses forms, dialogs, lcltype, controls;
106+
107+ procedure TryMessageDlg;
108+ begin
109+ if MessageDlg ('Question', 'Souhaitez-vous l''exécuter ?', mtConfirmation,
110+ [mbYes, mbNo, mbIgnore],0) = mrYes
111+ then { Exécuter la suite du programme};
112+ end;
113+```
114+
115+<center>
116+
117+<figure>
118+<img src="Question.png" title="Question.png" />
119+<figcaption>Question.png</figcaption>
120+</figure>
121+
122+</center>
123+
124+## Boîtes de dialogue de texte
125+
126+### InputBox
127+
128+Boîte de dialogue de texte : affiche un message et attend que l'utilisateur entre une information sous forme de texte.
129+
130+`Function InputBox(const ACaption, APrompt, ADefault : String) : String;`
131+
132+Affiche une boîte de dialogue avec le titre et le message de sollicitation définis , et s'attend à ce que l'utilisateur entre un texte dans la boîte de dialogue. Une chaîne de caractère par défaut, peut être rentrée optionnellement. La chaîne de caractères entrée par l'utilisateur ou par défaut est retournée comme résultat de la fonction.
133+
134+Exemple :
135+
136+``` pascal
137+ Uses forms, lcltype, dialogs, controls;
138+
139+ procedure TryInputBox;
140+ var userstring: string;
141+ begin
142+ userstring := InputBox ('Get some text input',
143+ 'Please type in some information', 'Some sample text');
144+ ShowMessage (userstring)
145+ end;
146+```
147+
148+### InputQuery
149+
150+`Function InputQuery(const ACaption, APrompt : String;`\
151+`                    MaskInput : Boolean; var Value : String) : Boolean;`\
152+`Function InputQuery(const ACaption, APrompt : String;`\
153+`                    var Value : String) : Boolean;`
154+
155+Deux versions de cette fonction qui affiche un message de sollicitation et s'attend à une entrée par l'utilisateur de données textuelles; la première inclue un paramètre booléen MaskInput qui détermine si l'entrée de l'utilisateur est masquée par des astérisques dans la boîte de saisie du texte (comme pendant l'entrée d'un mot de passe ), tandis que la seconde omet cette propriété. Le texte entré par l'utilisateurest retourné dans le paramètre variable 'Value'; le résultat de fonction est un booléen qui retourne TRUE si le bouton OK était appuyé , ou FALSE si la boîte de dialogue était fermée par n'importe quel autre mécanisme (comme cliquer sur l'icône 'Close' sur la barre supérieure de titre ). Omettre le paramètre MaskInput est équivalent à le paramétrer à FALSE.
156+
157+Exemple :
158+
159+``` pascal
160+ Uses forms, lcltype, dialogs, controls;
161+
162+ procedure TryInputQuery;
163+ var QueryResult: boolean;
164+ userstring: string;
165+ begin
166+ if InputQuery ('Question', 'Type in some data', TRUE, userstring)
167+ then ShowMessage (userstring)
168+ else
169+ begin
170+ InputQuery ('Don''t be silly', 'Please try again', userstring);
171+ ShowMessage (userstring)
172+ end
173+ end;
174+```
175+
176+<center>
177+
178+<figure>
179+<img src="MessageDlgQuestion.png" title="MessageDlgQuestion.png" />
180+<figcaption>MessageDlgQuestion.png</figcaption>
181+</figure>
182+
183+</center>
184+
185+<center>
186+
187+<figure>
188+<img src="DontBeSillly.png" title="DontBeSillly.png" />
189+<figcaption>DontBeSillly.png</figcaption>
190+</figure>
191+
192+</center>
193+
194+### PasswordBox
195+
196+`Function PasswordBox(const ACaption, APrompt : String) : String;`
197+
198+Se comporte similairement à la fonction InputQuery avec MaskInput = TRUE; la différence est que le mot de passe qui a été saisi est retourné comme résultat de la fonction (comme InputBox).
199+
200+## Constantes et types utilisés dans des dialogues de message
201+
202+Plusieurs constantes et types appropriés pour l'usage avec les boites de dialogue sont prédéfinis dans la bibliothèque LCL :
203+
204+Constantes de nombre entier pour définir les types de boutons et les icônes pour l'affichage dans MessageBox
205+
206+``` pascal
207+const { Déclaré dans LCLType.pp }
208+ MB_OK = $00000000;
209+ MB_OKCANCEL = $00000001;
210+ MB_ABORTRETRYIGNORE = $00000002;
211+ MB_YESNOCANCEL = $00000003;
212+ MB_YESNO = $00000004;
213+ MB_RETRYCANCEL = $00000005;
214+
215+
216+ MB_ICONHAND = $00000010;
217+ MB_ICONQUESTION = $00000020;
218+ MB_ICONEXCLAMATION = $00000030;
219+ MB_ICONASTERICK = $00000040;
220+ MB_ICONWARNING = MB_ICONEXCLAMATION;
221+ MB_ICONERROR = MB_ICONHAND;
222+ MB_ICONINFORMATION = MB_ICONASTERICK;
223+```
224+
225+Constantes de nombre entier définissant la valeur de retour de MessageBox selon quel bouton a été appuyé
226+
227+``` pascal
228+ IDOK = 1; ID_OK = IDOK;
229+ IDCANCEL = 2; ID_CANCEL = IDCANCEL;
230+ IDABORT = 3; ID_ABORT = IDABORT;
231+ IDRETRY = 4; ID_RETRY = IDRETRY;
232+ IDIGNORE = 5; ID_IGNORE = IDIGNORE;
233+ IDYES = 6; ID_YES = IDYES;
234+ IDNO = 7; ID_NO = IDNO;
235+ IDCLOSE = 8; ID_CLOSE = IDCLOSE;
236+ IDHELP = 9; ID_HELP = IDHELP;
237+```
238+
239+Défini si le premier, le deuxième ou le troisième bouton est celui par défaut
240+
241+``` pascal
242+ MB_DEFBUTTON1 = $00000000;
243+ MB_DEFBUTTON2 = $00000100;
244+ MB_DEFBUTTON3 = $00000200;
245+ MB_DEFBUTTON4 = $00000300;
246+```
247+
248+Le paramètre drapeaux de MessageBox est construit en ajoutant une constante de bouton \[MB_OK..MB_RETRYCANCEL\], une constante facultative d'icône \[MB_ICONHAND..MB_ICONINFORMATION\] et une constante facultative de bouton par défaut \[MB_DEFBUTTON1..MB_DEFBUTTON3\]
249+
250+Ce qui est écrit dans Dialogs.pp pour l'utilisation dans MessageDlg, qui a besoin des paramètres Atype de type TMsgDlgType et AButtons de type TMSgDlgButtons :
251+
252+``` pascal
253+ { Déclaré dans Dialogs.pp }
254+ type
255+ TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation,
256+ mtCustom);
257+ TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore,
258+ mbAll, mbNoToAll, mbYesToAll, mbHelp, mbClose);
259+ TMsgDlgButtons = set of TMsgDlgBtn;
260+
261+
262+ const
263+ mbYesNoCancel = [mbYes, mbNo, mbCancel];
264+ mbOKCancel = [mbOK, mbCancel];
265+ mbAbortRetryIgnore = [mbAbort, mbRetry, mbIgnore];
266+
267+
268+ MsgDlgBtnToBitBtnKind: array[TMsgDlgBtn] of TBitBtnKind = (
269+ bkYes, bkNo, bkOK, bkCancel, bkAbort, bkRetry, bkIgnore,
270+ bkAll, bkNoToAll, bkYesToAll, bkHelp, bkClose
271+ );
272+
273+
274+ BitBtnKindToMsgDlgBtn: array[TBitBtnKind] of TMsgDlgBtn = (
275+ mbOk, mbOK, mbCancel, mbHelp, mbYes, mbNo,
276+ mbClose, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToALl, mbYesToAll
277+ );
278+
279+
280+ { Déclaré dans Controls.pp }
281+ const
282+ mrNone = 0;
283+ mrOK = mrNone + 1;
284+ mrCancel = mrNone + 2;
285+ mrAbort = mrNone + 3;
286+ mrRetry = mrNone + 4;
287+ mrIgnore = mrNone + 5;
288+ mrYes = mrNone + 6;
289+ mrNo = mrNone + 7;
290+ mrAll = mrNone + 8;
291+ mrNoToAll = mrNone + 9;
292+ mrYesToAll = mrNone + 10;
293+ mrLast = mrYesToAll;
294+```
295+
296+------------------------------------------------------------------------
297+
298+This page has been imported from the epikwiki [version](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples).
299+
300+---
301+*From the Free Pascal wiki, page "Dialog Examples/fr", as it stood on 2020-02-13 after a change by Trev, out of the wiki's dump of 2024-05-26. 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