Bonjour, je crée une fiche modale (ModalFormf) depuis la fiche principale en cliquant sur un bouton (btnNewForm):
Dans cette fiche modale je dépose un bouton et un TEdit, en cliquant sur le bouton j'écris sans problème dans le TEdit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Procedure TMainf.btnNewFormClick(Sender: TObject); var F : TModalFormf; // déclaration Begin F:=TModalFormf.Create(nil); // création try F.Showmodal; // affichage finally F.Free; // libération end; end;
Par contre si je dépose un deuxième bouton qui utilise une procédure pour écrire dans un autre TEdit j'obtiens un beau SIGSEV:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Procedure TModalFormf.Button1Click(Sender: TObject); Begin Edit1.Text:='Direct'; // ->Affichage OK end;
La fiche modale et ses composants ont été dessinés dans l'IDE mais la fiche n'est créée qu'à l'exécution par appui sur le bouton. Par contre si je choisis de la créer automatiquement (et en adaptant évidemment le code) dans les options de projet tout se passe bien, pas d'erreur SIGSEV.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Procedure ProcTest(s: String); Begin ModalFormf.Edit2.Text:=s; // ->Génère une exception "External: SIGSEV" End; Procedure TModalFormf.Button2Click(Sender: TObject); Begin ProcTest('Procedure'); end;
En plus le fait que le premier bouton1 fonctionne correctement fait que la logique m'échappe...
Partager