Ordre d'execution a la creation dune form ? [RESOLU] - Delphi/Pascal - Programmation
Marsh Posté le 11-11-2006 à 15:01:49
Je comprenais pas que ton code plante suivant la description que tu en fais alors j'ai lancé delphi 7 pour tester.
J'ai crée une fiche principale Form1 et une fiche Form2 que j'ai sortie de la création automatique.
J'ai alors posé un Bouton1 dont le click lance le code de création dynamique de la Form2.
Dans la Form2 j'ai placée un champs public du type TButton qui joue le rôle de ton onbjet MySettings.
Dans le OnShow de Form2 je change le caption de Form2.Button1 et cela change bien le Form1.Button1.Caption...
Le fait que cela ne plante pas est trés logique et le OnShow de ma Form2 est bien lancé lors de l'exécution de la ligne Form2.ShowModal;
Ai-je bien reproduis ta situation ?? Si oui, ton problème viens d'ailleurs, si non j'attends tes précisions. (genre... qu'est censé faire le TMySettings)
En espérant avoir fait avancer le schmilblick.
Marsh Posté le 13-11-2006 à 10:42:54
xlogan a écrit : Je comprenais pas que ton code plante suivant la description que tu en fais alors j'ai lancé delphi 7 pour tester. |
Voici mon code :
Code :
|
Il s'agit de la formcreate de ma fiche principale...je cree mes compos, je les initialise, je teste ma bdd à partir d'un fichier de config XML et si y a un soucy je voudrais creer dynamiquement ma fenetre de config et l ouvrir en y passant tous mes objets crees pour mutualiser certaines infos (config, erreurs entre autre).
Pourtant qd je fais wConfig := TwConfig.Create(Self); cela execute bien le formcreate mais ca passe directement dans le onshow avant meme de continuer le code de ma fiche principale et d arriver sur le showmodal :s
Une idee ?
Marsh Posté le 13-11-2006 à 11:09:13
mkracing66 a écrit : Bon voila j ai un soucy et je ne pige absolument rien.
|
Dans la ligne 3, wNewWindow a un 's' et pas les autres!
Marsh Posté le 13-11-2006 à 11:52:48
mkracing66 a écrit : j'etais persuade, et je le suis toujours que les evenements oncreate est appelé apres le create de la form et que le onshow est appele au moment d un show ou showmodal, et qu ensuite on a un onactivate a chaque focus de la fenetre en question, ou je me gourre qq part ? |
Oui, tu te gourance. En tout cas, si tu croi que OnShow ne peut etre déclenché que par Show ou ShowModal.
OnShow est appele au moment de l'affichage et l'affichage à lieu (sans mème passer implicitement par la procedure show) à la création si visible=true.
Marsh Posté le 13-11-2006 à 11:54:38
lol, je ne m etais pas arrete a une erreur de syntaxe
merci qd meme
[edit] c etait pour breizhbugs
Marsh Posté le 13-11-2006 à 12:13:15
el zozo a écrit : Oui, tu te gourance. En tout cas, si tu croi que OnShow ne peut etre déclenché que par Show ou ShowModal. |
oui effectivement il semblerait que le pb soit cela....obligation de mettre visible a false pour ne pas avor de soucy.
Merci
Marsh Posté le 13-11-2006 à 19:43:01
?? Visible était à True ?? Ce n'est pas la caleur par défaut de la propriété... mais j'aurai dû y pensé.
Content que ton problème soit résolu.
Marsh Posté le 10-11-2006 à 16:25:29
Bon voila j ai un soucy et je ne pige absolument rien.
Je cree dynamiquement une nouvelle form (j ai donc bien modifie dans mes options de projets que la fenetre designee serait creee dynamiquement) et j ai mis un code asez standard selon moi que je resume vite fait ainsi :
j'etais persuade, et je le suis toujours que les evenements oncreate est appelé apres le create de la form et que le onshow est appele au moment d un show ou showmodal, et qu ensuite on a un onactivate a chaque focus de la fenetre en question, ou je me gourre qq part ?
Mon pb est que j ai mis du code dans l evenement onshow ou j'utilise des proprietes de l objet MySettings, or qd je debug au pas a pas je passe du oncreate directement au onshow sans revenir dans mon code principal ou j affecte mon objet MySettings par celui de la form principale (-> wNewWindows.MySettings := MySettings donc bien evidement ca plante lamentablement....
Bref qqun a t il une idee ? comment se fait il que ma fenetre s affiche directement ? y a rien dans le oncreate....
Merci d avance pour toute aide apportée.
Message édité par mkracing66 le 13-11-2006 à 12:13:36