Sign in Join
Wiki copytemporary

Dialog Examples/fr: what changed

Revision 1 to 2. 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
2121`Procedure ShowMessage (const Msg: string);`\
22-\
22+
2323`{ Déclarée dans Dialogs.pp }`
2424
2525La 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.\
2626C'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.
2727
2828Exemple :
2929
3030``` pascal
3131 Program LazMessage;
3232 Uses Dialogs;
3333 begin
3434 ShowMessage ('C''est un message de Lazarus.')
3535 end.
3636```
3737
3838### MessageBox
3939
4040`Function Application.MessageBox (Text, Caption: PChar; Flags: longint) : Integer;`\
41-\
41+
4242`{ Défini dans  Forms.pp comme une partie de TApplication; par conséquent doit être appelé par`\
4343`  Application.Messagebox () ou en utilisant la construction 'with Application do ...'}`
4444
4545Paramètres :
4646
4747- Text : la chaîne de caractères qui est affichée dans la boîte de dialogue ;
4848- Caption : la chaîne de caractère affiché dans la barre de titre de la boîte de dialogue ;
4949- 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.
5050
5151La fonction renvoie un entier correspondant au bouton appuyé ; cette valeur peut être déterminée en faisant référence aux constantes \[IDOK..IDHELP\]
5252
5353Cette 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)
5454
5555Exemple :
5656
5757``` pascal
5858 Uses Forms, Dialogs, LCLType;
5959
6060 Procedure DisplayMessageBox;
6161 var reply, boxstyle: integer;
6262 begin
6363 with application do
6464 begin
6565 boxstyle := MB_ICONQUESTION + MB_YESNO;
6666 reply := MessageBox ('Appuyez sur un bouton', 'MessageBoxDemo', boxstyle);
6767 if reply = IDYES then MessageBox ('Oui', 'Répondre',MB_ICONINFORMATION)
6868 else MessageBox ('Non', 'Répondre', MB_ICONHAND);
6969 end;
7070 end;
7171```
7272
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>
73+![](/wiki-images/c/c2/MessageBoxDemo.png)
8874
89-</center>
75+![](/wiki-images/0/06/ReplyYes.png)
9076
9177### MessageDLG
9278
9379`function MessageDlg(const aMsg: string; DlgType: TMsgDlgType; `\
9480`                   Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;`\
9581`function MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType; `\
9682`                   Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;`
9783
9884Il 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.
9985
10086C'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\]).
10187
10288Exemple :
10389
10490``` pascal
10591 Uses forms, dialogs, lcltype, controls;
10692
10793 procedure TryMessageDlg;
10894 begin
10995 if MessageDlg ('Question', 'Souhaitez-vous l''exécuter ?', mtConfirmation,
11096 [mbYes, mbNo, mbIgnore],0) = mrYes
11197 then { Exécuter la suite du programme};
11298 end;
11399```
114100
115-<center>
116-
117-<figure>
118-<img src="Question.png" title="Question.png" />
119-<figcaption>Question.png</figcaption>
120-</figure>
121-
122-</center>
101+![](/wiki-images/3/30/Question.png)
123102
124103## Boîtes de dialogue de texte
125104
126105### InputBox
127106
128107Boîte de dialogue de texte : affiche un message et attend que l'utilisateur entre une information sous forme de texte.
129108
130109`Function InputBox(const ACaption, APrompt, ADefault : String) : String;`
131110
132111Affiche 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.
133112
134113Exemple :
135114
136115``` pascal
137116 Uses forms, lcltype, dialogs, controls;
138117
139118 procedure TryInputBox;
140119 var userstring: string;
141120 begin
142121 userstring := InputBox ('Get some text input',
143122 'Please type in some information', 'Some sample text');
144123 ShowMessage (userstring)
145124 end;
146125```
147126
148127### InputQuery
149128
150129`Function InputQuery(const ACaption, APrompt : String;`\
151130`                    MaskInput : Boolean; var Value : String) : Boolean;`\
152131`Function InputQuery(const ACaption, APrompt : String;`\
153132`                    var Value : String) : Boolean;`
154133
155134Deux 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.
156135
157136Exemple :
158137
159138``` pascal
160139 Uses forms, lcltype, dialogs, controls;
161140
162141 procedure TryInputQuery;
163142 var QueryResult: boolean;
164143 userstring: string;
165144 begin
166145 if InputQuery ('Question', 'Type in some data', TRUE, userstring)
167146 then ShowMessage (userstring)
168147 else
169148 begin
170149 InputQuery ('Don''t be silly', 'Please try again', userstring);
171150 ShowMessage (userstring)
172151 end
173152 end;
174153```
175154
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>
155+![](/wiki-images/d/d0/MessageDlgQuestion.png)
191156
192-</center>
157+![](/wiki-images/c/ce/DontBeSillly.png)
193158
194159### PasswordBox
195160
196161`Function PasswordBox(const ACaption, APrompt : String) : String;`
197162
198163Se 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).
199164
200165## Constantes et types utilisés dans des dialogues de message
201166
202167Plusieurs constantes et types appropriés pour l'usage avec les boites de dialogue sont prédéfinis dans la bibliothèque LCL :
203168
204169Constantes de nombre entier pour définir les types de boutons et les icônes pour l'affichage dans MessageBox
205170
206171``` pascal
207172const { Déclaré dans LCLType.pp }
208173 MB_OK = $00000000;
209174 MB_OKCANCEL = $00000001;
210175 MB_ABORTRETRYIGNORE = $00000002;
211176 MB_YESNOCANCEL = $00000003;
212177 MB_YESNO = $00000004;
213178 MB_RETRYCANCEL = $00000005;
214179
215180
216181 MB_ICONHAND = $00000010;
217182 MB_ICONQUESTION = $00000020;
218183 MB_ICONEXCLAMATION = $00000030;
219184 MB_ICONASTERICK = $00000040;
220185 MB_ICONWARNING = MB_ICONEXCLAMATION;
221186 MB_ICONERROR = MB_ICONHAND;
222187 MB_ICONINFORMATION = MB_ICONASTERICK;
223188```
224189
225190Constantes de nombre entier définissant la valeur de retour de MessageBox selon quel bouton a été appuyé
226191
227192``` pascal
228193 IDOK = 1; ID_OK = IDOK;
229194 IDCANCEL = 2; ID_CANCEL = IDCANCEL;
230195 IDABORT = 3; ID_ABORT = IDABORT;
231196 IDRETRY = 4; ID_RETRY = IDRETRY;
232197 IDIGNORE = 5; ID_IGNORE = IDIGNORE;
233198 IDYES = 6; ID_YES = IDYES;
234199 IDNO = 7; ID_NO = IDNO;
235200 IDCLOSE = 8; ID_CLOSE = IDCLOSE;
236201 IDHELP = 9; ID_HELP = IDHELP;
237202```
238203
239204Défini si le premier, le deuxième ou le troisième bouton est celui par défaut
240205
241206``` pascal
242207 MB_DEFBUTTON1 = $00000000;
243208 MB_DEFBUTTON2 = $00000100;
244209 MB_DEFBUTTON3 = $00000200;
245210 MB_DEFBUTTON4 = $00000300;
246211```
247212
248213Le 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\]
249214
250215Ce 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 :
251216
252217``` pascal
253218 { Déclaré dans Dialogs.pp }
254219 type
255220 TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation,
256221 mtCustom);
257222 TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore,
258223 mbAll, mbNoToAll, mbYesToAll, mbHelp, mbClose);
259224 TMsgDlgButtons = set of TMsgDlgBtn;
260225
261226
262227 const
263228 mbYesNoCancel = [mbYes, mbNo, mbCancel];
264229 mbOKCancel = [mbOK, mbCancel];
265230 mbAbortRetryIgnore = [mbAbort, mbRetry, mbIgnore];
266231
267232
268233 MsgDlgBtnToBitBtnKind: array[TMsgDlgBtn] of TBitBtnKind = (
269234 bkYes, bkNo, bkOK, bkCancel, bkAbort, bkRetry, bkIgnore,
270235 bkAll, bkNoToAll, bkYesToAll, bkHelp, bkClose
271236 );
272237
273238
274239 BitBtnKindToMsgDlgBtn: array[TBitBtnKind] of TMsgDlgBtn = (
275240 mbOk, mbOK, mbCancel, mbHelp, mbYes, mbNo,
276241 mbClose, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToALl, mbYesToAll
277242 );
278243
279244
280245 { Déclaré dans Controls.pp }
281246 const
282247 mrNone = 0;
283248 mrOK = mrNone + 1;
284249 mrCancel = mrNone + 2;
285250 mrAbort = mrNone + 3;
286251 mrRetry = mrNone + 4;
287252 mrIgnore = mrNone + 5;
288253 mrYes = mrNone + 6;
289254 mrNo = mrNone + 7;
290255 mrAll = mrNone + 8;
291256 mrNoToAll = mrNone + 9;
292257 mrYesToAll = mrNone + 10;
293258 mrLast = mrYesToAll;
294259```
295260
296261------------------------------------------------------------------------
297262
298263This page has been imported from the epikwiki [version](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples).
299264
300265---
301266*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