Bonjour à tous,
Je me lance dans la fabrication de ma propre boite de dialogue (name : myMessageDlgPos qui contient 2 TBitBtn, 1Timage et 1 TRichEdit), et j'ai un petit soucis avec la valeur de retour
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
    Rep: TModalResult;
begin
        myMessageDlgPos.Btn1.Kind := bkYes;
        myMessageDlgPos.Btn1.ModalResult := mrYes; // idYes = 6
 
        myMessageDlgPos.Btn2.Kind := bkNo;
        myMessageDlgPos.Btn2.ModalResult := mrNo;  // idNo = 7
 
        myMessageDlgPos.Msg.Text := 'ATTENTION bla bla bla ?';
 
        Rep := myMessageDlgPos.ShowModal;
        if Rep = mrYes
        then ...//...
En lisant des post traitant du sujet, je devrais avoir Rep = 6 si je cliques sur Btn1 et 7 si je cliques sur Btn2
Or, à tous les coups Rep = 2 qui correspond à mrCancel

► Pour tester, j'ai mis dans les évènements onClick de chaque boutons :
ShowMessage(intToStr(myMessageDlgPos.ModalResult));
Close; // pour fermer la fiche
: le renvoie est correct
Par contre dans l'évènement onClose, le renvoie = 2
Donc, il y a un moment où ModalResult prends la valeur mrCancel ...

► Je me demande si ce n'est pas le Close qui mets le bazars ...


Qu'est ce qui cloche chez moi ?