Bonjour
Décidément, c'est pas ma journée.
Après mon problème de menu, j'ai voulu utiliser la très utile TTaskDialog.
Sur un projet de test, je fais quelques essais et tout se passe à merveille.
Je transfère le bout de code dans mon appli principale dans le code Execute d'une action de TActionList.
Et là, le Execute du TTaskDialog passe directement à la ligne Free dans le Finally sans rien faire d'autre.
Le code ne passe même pas dans le Except qui pourrait signaler une erreur quelconque.
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
19
20
21
22
23
24
25
26
27 with TTaskDialog.Create(Self) do try try Caption := 'Alpha'; Title := 'Imprimer'; Text := 'Choisissez le mode de regroupement'; CommonButtons := [tcbOk, tcbCancel]; MainIcon := tdiNone; RadioButtons.Add.Caption := 'Groupement A'; RadioButtons.Add.Caption := 'Groupement B'; VerificationText := 'Se souvenir de mon choix'; Flags := [tfVerificationFlagChecked, tfUseHiconMain]; if Execute then // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< if ModalResult = mrOk then begin Ok := True; Choix := RadioButton.Index; end; except on E: Exception do ShowMessage(E.Message); end; finally Free; // <<<<<<<<<<<<<<<<<<<<<<<<< end;
Le code étant exécuté dans une TForm modale, j'ai testé dans un appel menu de la form principale et le comportement est le même.
La seule différence est que le projet de test a été créé directement dans sydney alors que le programme principal est issu de plusieurs migrations successives de Delphi.
Une autre idée de la cause du problème ??
Partager