2010-07-29 31 views
0

Je rencontre un problème difficile à surpasser: lors de l'affichage de nouveaux formulaires (je les crée et les montre à l'exécution), le formulaire est parfois minimisé.Les formulaires sont minimisés sur FormShow: comportement aléatoire dans l'application Delphi. Une idée?

Je ne comprends pas pourquoi, je dis ce problème dans XP, Vista et 7.

J'ai essayé de créer des échantillons pour isoler le problème, mais sur les échantillons que je ne peux pas reproduire (= les formulaires, pas toujours minimisé).

Ce qui se passe est:

dans ma demande que je crée et montrer de nombreuses formes (l'utilisateur clique sur le point de menu - un formulaire est créé et affiché). Parfois, de manière aléatoire, le formulaire est également réduit dans la barre d'application. J'ai donc besoin de cliquer dessus et il est à nouveau restauré ...

Quelqu'un at-il une idée de pourquoi cela se produit? Si j'ai un indice au moins, je peux essayer de trouver et de résoudre le problème. J'utilise Delphi 2009 et DevExpress VCL.

+0

Utilisez-vous un code/composants qui maintiennent le magasin la position du formulaire pour qu'il reste dans la même position quand il est recréé? –

+0

J'ai l'impression que la forme ne se minimise pas autant que d'aller à l'arrière-plan. Est-ce possible? En d'autres termes, immédiatement après le lancement d'un nouveau formulaire, vous voyez toujours l'ancien, parce que le nouveau est assis derrière? –

+0

oui j'utilise du code pour restaurer la taille du formulaire (pas la position). – LaBracca

Répondre

1

Lors de l'exécution:

Form := TMyForm.Create; 
Form.Show; 
Form.WindowState := fsNormal; 

Si vous n'utilisez des composants d'économie d'Etat, alors mieux inverser deux dernières actions:

Form := TMyForm.Create; 
Form.WindowState := fsNormal; 
Form.Show; 
+0

Oui Oui Oui. Cette réponse (que j'ai d'abord ignorée) examinée 6 mois plus tard m'a donné l'indice. Mon problème était que je restaure WindowsState, donc si l'utilisateur a fermé l'application avec une fenêtre réduite, il a été restauré comme minimisé. J'ai donc utilisé la réponse de toute façon car je stockais dans formshow (pas de raison de le faire dans FormShow donc j'ai déménagé dans FormCreate), de toute façon ce "focus" sur WindowState était utile. Merci. – LaBracca