Problème pour écrire à l'aide d'une procédure dans un composant d'une fiche crée par programmation
Bonjour, je crée une fiche modale (ModalFormf) depuis la fiche principale en cliquant sur un bouton (btnNewForm):
Code:
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:
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:
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...