Ce n'est pas vrai, il doit y avoir un autre problème dans votre code. Le réglage ModalResult
affectera uniquement le formulaire actuellement modal. Essayez cet exemple très simple:
Créer une nouvelle forme
déposer un bouton sur elle
Dans le gestionnaire d'événements bouton OnClick
ajouter ce code:
procedure TForm1.Button1Click(Sender: TObject);
begin
with TForm1.Create(Self) do begin
if ShowModal = mrCancel then
Self.Color := RGB(Random(256), Random(256), Random(256));
end;
end;
Vous remarquerez que chaque pression de bouton crée une nouvelle forme modale, et vous pouvez répéter ceci aussi souvent que vous le souhaitez. En fermant un formulaire, vous définissez ModalResult
sur mrCancel
et réactivez le formulaire parent. Pour quitter l'application, vous devrez fermer tous les formulaires, un par un, dans l'ordre inverse de la création.
Correct, après quelques recherches et tests, j'ai trouvé que - attendez-le - "en quelque sorte ......" le bouton avait un résultat Modal de mrNo et après la deuxième boîte de dialogue fermée, la bonne chose a été faite par la classe et le dialogue était fermé. – MX4399