1 pièce(s) jointe(s)
[0.9.30] Problème d'appel de composant
Bonjour à toutes et à tous,
J'ai créé un composant "Formulaire" que vous trouverez en fichier joint. Je travaille avec Lazarus 0.9.30.
Dans l'environnement Windows, que j'appelle ce composant à partir de la fenêtre principale d'un programme ou à partir d'une fenêtre appelée à partir de la fenêtre principale, tout fonctionne très bien.
Dans l'environnement Linux (Ubuntu 11.04), pas de problème si j'appelle le composant à partir de la fenêtre principale, par contre, à partir d'une fenêtre appelée par la fenêtre principale, le composant s'affiche, mais il ne m'est pas possible d'écrire dans les TEdit du composant, les boutons sont inactifs, les fenêtres de mon programme sont bloquées.
Quand, dans ces conditions, je passe par le débogueur, je vois que je tourne bien dans la boucle (voir ci-dessous) appelant "Application.ProcessMessage", mais c'est comme si je ne captais aucun message.
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| function TFormulR.Execute: Boolean;
begin
AffFrm.DoShow;
AffFrm.Fin:= 0;
repeat
Application.ProcessMessages;
until AffFrm.Fin > 0;
if AffFrm.Fin = 1 then
Result:= True
else
Result:= False;
end; |
Dans ce composant, sa visualisation se fait par un appel interne à la procédure "Show". Si je la remplace par "ShowModal", à ce moment, je peux entrer des données dans mon formulaire, agir sur les boutons, mais cette fois, que l'appel soit fait à partir de la fenêtre principale ou autre, il n'y a pas de retour au programme (Ubuntu et Windows) : c'est pire !
Avez-vous une idée de ce qui peut se passer et comment y remédier ?
Merci de votre aide.
Pierre