Bonjour,
J'évoquais il y a quelques temps un problème de boite de dialogue qui devrait être modale sous Windows et qui finalement ne l'est pas.
Le messageDlg ne fait pas vraiment son boulot de même que le ShowModal d'un TForm si on lui passe en paramètre une fonction de callback.
Voici la solution qui semble mieux fonctionner :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 function Confirm(Question: string): Boolean; var R: Boolean; begin TDialogService.PreferredMode := TDialogService.TPreferredMode.Sync; TDialogService.MessageDialog(Question, TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], TMsgDlgBtn.mbNo, 0, procedure(const AResult: TModalResult) begin case AResult of mrYes: R := True; mrNo : R := False else R := False; end; end); Result := R; end;
Partager