Bonjour, je crée une fiche modale (ModalFormf) depuis la fiche principale en cliquant sur un bouton (btnNewForm):
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;
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
 
Procedure TModalFormf.Button1Click(Sender: TObject);
Begin
  Edit1.Text:='Direct'; // ->Affichage OK
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
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;
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.

En plus le fait que le premier bouton1 fonctionne correctement fait que la logique m'échappe...