Sign in Join
Wiki copytemporary

Dialog Examples/fr: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11# Quelques boîtes de dialogue pratiques
22
33Ci-dessous quelques boîtes de dialogue pratiques non incluses dans la palette de composant :
44
55- procedure ShowMessage (const Msg: string);
66- function MessageBox (Text, Caption : PChar; Flags: Word): Integer;
77- function MessageDlg (const Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: LongInt): Word;
88- function InputBox (const ACaption, APrompt, ADefault: string); string;
99- function InputQuery (const ACaption, APrompt: string; var Value: string): Boolean;
1010- function PasswordBox(const ACaption, APrompt : String) : String;
1111
1212Chacun 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.\
1313La 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.
1414
1515## Message Dialogs
1616
1717Message dialogs affiche un message et attend qu'une touche soit appuyée ou un double-clic de la souris.
1818
1919### ShowMessage
2020
21-`Procedure ShowMessage (const Msg: string);`\
21+``` pascal
22+Procedure ShowMessage (const Msg: string);
2223
23-`{ Déclarée dans Dialogs.pp }`
24+{ Déclarée dans Dialogs.pp }
25+```
2426
2527La 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.\
2628C'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.
2729
2830Exemple :
2931
3032``` pascal
3133 Program LazMessage;
3234 Uses Dialogs;
3335 begin
3436 ShowMessage ('C''est un message de Lazarus.')
3537 end.
3638```
3739
3840### MessageBox
3941
40-`Function Application.MessageBox (Text, Caption: PChar; Flags: longint) : Integer;`\
42+``` pascal
43+Function Application.MessageBox (Text, Caption: PChar; Flags: longint) : Integer;
4144
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 ...'}`
45+{ Défini dans Forms.pp comme une partie de TApplication; par conséquent doit être appelé par
46+ Application.Messagebox () ou en utilisant la construction 'with Application do ...'}
47+```
4448
4549Paramètres :
4650
4751- Text : la chaîne de caractères qui est affichée dans la boîte de dialogue ;
4852- Caption : la chaîne de caractère affiché dans la barre de titre de la boîte de dialogue ;
4953- 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.
5054
5155La fonction renvoie un entier correspondant au bouton appuyé ; cette valeur peut être déterminée en faisant référence aux constantes \[IDOK..IDHELP\]
5256
5357Cette 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)
5458
5559Exemple :
5660
5761``` pascal
5862 Uses Forms, Dialogs, LCLType;
5963
6064 Procedure DisplayMessageBox;
6165 var reply, boxstyle: integer;
6266 begin
6367 with application do
6468 begin
6569 boxstyle := MB_ICONQUESTION + MB_YESNO;
6670 reply := MessageBox ('Appuyez sur un bouton', 'MessageBoxDemo', boxstyle);
6771 if reply = IDYES then MessageBox ('Oui', 'Répondre',MB_ICONINFORMATION)
6872 else MessageBox ('Non', 'Répondre', MB_ICONHAND);
6973 end;
7074 end;
7175```
7276
7377![](/wiki-images/c/c2/MessageBoxDemo.png)
7478
7579![](/wiki-images/0/06/ReplyYes.png)
7680
7781### MessageDLG
7882
79-`function MessageDlg(const aMsg: string; DlgType: TMsgDlgType; `\
80-`                   Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;`\
81-`function MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType; `\
82-`                   Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;`
83+``` pascal
84+function MessageDlg(const aMsg: string; DlgType: TMsgDlgType;
85+ Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
86+function MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType;
87+ Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
88+```
8389
8490Il 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.
8591
8692C'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\]).
8793
8894Exemple :
8995
9096``` pascal
9197 Uses forms, dialogs, lcltype, controls;
9298
9399 procedure TryMessageDlg;
94100 begin
95101 if MessageDlg ('Question', 'Souhaitez-vous l''exécuter ?', mtConfirmation,
96102 [mbYes, mbNo, mbIgnore],0) = mrYes
97103 then { Exécuter la suite du programme};
98104 end;
99105```
100106
101107![](/wiki-images/3/30/Question.png)
102108
103109## Boîtes de dialogue de texte
104110
105111### InputBox
106112
107113Boîte de dialogue de texte : affiche un message et attend que l'utilisateur entre une information sous forme de texte.
108114
109-`Function InputBox(const ACaption, APrompt, ADefault : String) : String;`
115+``` pascal
116+Function InputBox(const ACaption, APrompt, ADefault : String) : String;
117+```
110118
111119Affiche 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.
112120
113121Exemple :
114122
115123``` pascal
116124 Uses forms, lcltype, dialogs, controls;
117125
118126 procedure TryInputBox;
119127 var userstring: string;
120128 begin
121129 userstring := InputBox ('Get some text input',
122130 'Please type in some information', 'Some sample text');
123131 ShowMessage (userstring)
124132 end;
125133```
126134
127135### InputQuery
128136
129-`Function InputQuery(const ACaption, APrompt : String;`\
130-`                    MaskInput : Boolean; var Value : String) : Boolean;`\
131-`Function InputQuery(const ACaption, APrompt : String;`\
132-`                    var Value : String) : Boolean;`
137+``` pascal
138+Function InputQuery(const ACaption, APrompt : String;
139+ MaskInput : Boolean; var Value : String) : Boolean;
140+Function InputQuery(const ACaption, APrompt : String;
141+ var Value : String) : Boolean;
142+```
133143
134144Deux 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.
135145
136146Exemple :
137147
138148``` pascal
139149 Uses forms, lcltype, dialogs, controls;
140150
141151 procedure TryInputQuery;
142152 var QueryResult: boolean;
143153 userstring: string;
144154 begin
145155 if InputQuery ('Question', 'Type in some data', TRUE, userstring)
146156 then ShowMessage (userstring)
147157 else
148158 begin
149159 InputQuery ('Don''t be silly', 'Please try again', userstring);
150160 ShowMessage (userstring)
151161 end
152162 end;
153163```
154164
155165![](/wiki-images/d/d0/MessageDlgQuestion.png)
156166
157167![](/wiki-images/c/ce/DontBeSillly.png)
158168
159169### PasswordBox
160170
161-`Function PasswordBox(const ACaption, APrompt : String) : String;`
171+``` pascal
172+Function PasswordBox(const ACaption, APrompt : String) : String;
173+```
162174
163175Se 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).
164176
165177## Constantes et types utilisés dans des dialogues de message
166178
167179Plusieurs constantes et types appropriés pour l'usage avec les boites de dialogue sont prédéfinis dans la bibliothèque LCL :
168180
169181Constantes de nombre entier pour définir les types de boutons et les icônes pour l'affichage dans MessageBox
170182
171183``` pascal
172184const { Déclaré dans LCLType.pp }
173185 MB_OK = $00000000;
174186 MB_OKCANCEL = $00000001;
175187 MB_ABORTRETRYIGNORE = $00000002;
176188 MB_YESNOCANCEL = $00000003;
177189 MB_YESNO = $00000004;
178190 MB_RETRYCANCEL = $00000005;
179191
180192
181193 MB_ICONHAND = $00000010;
182194 MB_ICONQUESTION = $00000020;
183195 MB_ICONEXCLAMATION = $00000030;
184196 MB_ICONASTERICK = $00000040;
185197 MB_ICONWARNING = MB_ICONEXCLAMATION;
186198 MB_ICONERROR = MB_ICONHAND;
187199 MB_ICONINFORMATION = MB_ICONASTERICK;
188200```
189201
190202Constantes de nombre entier définissant la valeur de retour de MessageBox selon quel bouton a été appuyé
191203
192204``` pascal
193205 IDOK = 1; ID_OK = IDOK;
194206 IDCANCEL = 2; ID_CANCEL = IDCANCEL;
195207 IDABORT = 3; ID_ABORT = IDABORT;
196208 IDRETRY = 4; ID_RETRY = IDRETRY;
197209 IDIGNORE = 5; ID_IGNORE = IDIGNORE;
198210 IDYES = 6; ID_YES = IDYES;
199211 IDNO = 7; ID_NO = IDNO;
200212 IDCLOSE = 8; ID_CLOSE = IDCLOSE;
201213 IDHELP = 9; ID_HELP = IDHELP;
202214```
203215
204216Défini si le premier, le deuxième ou le troisième bouton est celui par défaut
205217
206218``` pascal
207219 MB_DEFBUTTON1 = $00000000;
208220 MB_DEFBUTTON2 = $00000100;
209221 MB_DEFBUTTON3 = $00000200;
210222 MB_DEFBUTTON4 = $00000300;
211223```
212224
213225Le 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\]
214226
215227Ce 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 :
216228
217229``` pascal
218230 { Déclaré dans Dialogs.pp }
219231 type
220232 TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation,
221233 mtCustom);
222234 TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore,
223235 mbAll, mbNoToAll, mbYesToAll, mbHelp, mbClose);
224236 TMsgDlgButtons = set of TMsgDlgBtn;
225237
226238
227239 const
228240 mbYesNoCancel = [mbYes, mbNo, mbCancel];
229241 mbOKCancel = [mbOK, mbCancel];
230242 mbAbortRetryIgnore = [mbAbort, mbRetry, mbIgnore];
231243
232244
233245 MsgDlgBtnToBitBtnKind: array[TMsgDlgBtn] of TBitBtnKind = (
234246 bkYes, bkNo, bkOK, bkCancel, bkAbort, bkRetry, bkIgnore,
235247 bkAll, bkNoToAll, bkYesToAll, bkHelp, bkClose
236248 );
237249
238250
239251 BitBtnKindToMsgDlgBtn: array[TBitBtnKind] of TMsgDlgBtn = (
240252 mbOk, mbOK, mbCancel, mbHelp, mbYes, mbNo,
241253 mbClose, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToALl, mbYesToAll
242254 );
243255
244256
245257 { Déclaré dans Controls.pp }
246258 const
247259 mrNone = 0;
248260 mrOK = mrNone + 1;
249261 mrCancel = mrNone + 2;
250262 mrAbort = mrNone + 3;
251263 mrRetry = mrNone + 4;
252264 mrIgnore = mrNone + 5;
253265 mrYes = mrNone + 6;
254266 mrNo = mrNone + 7;
255267 mrAll = mrNone + 8;
256268 mrNoToAll = mrNone + 9;
257269 mrYesToAll = mrNone + 10;
258270 mrLast = mrYesToAll;
259271```
260272
261273------------------------------------------------------------------------
262274
263275This page has been imported from the epikwiki [version](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples).
264276
265277---
266278*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