DeltaFX
Messages postés449Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention 8 avril 2009
-
12 oct. 2005 à 23:07
DeltaFX
Messages postés449Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention 8 avril 2009
-
14 oct. 2005 à 20:53
Bonsoir la planete
J'ai un gros problème: je me suis lancé dans la création d'un programme multi Form.
J'ai donc
- une Form Principale qui me fait l'affichage d'une webcam
- une première Form secondaire qui gère une interface USB vers une carte I/O
- une seconde Form secondaire qui phagocyte un programme de navigation routiere
- Et une troisième form qui contient un player MP3.
Toutes mes Form sont en bsnone, elles ont des positions prédéfinie à l'écran, et son susceptiblede changer de taille, de se recouvrir mutuellement. Par exemple, la partie MP3 est un rectangle de 120(w) *268(h) dans 90% des cas, sauf quand j'ai besoin d'une interface + complete, au quel cas la form fait 680*268 et là j'ai les boutons load et scan, mes scrollList pour les mp3 et les playlists etc etc. A ce moment là, elle cache la Form de navigation routiere (pas grave, guidage vocal) Vous voyez le principe ?
Tout semble marcher jusqu'au moment ou je veux quitter l'appli, et là ca se gate.
j'ai systématiquement une erreur A win32 api function failed, je tente un CTRL-F2, boom, le programme a provoquer un gros merdier dans Kernel 32, la machine freeze et j'ai le droit de rebooter à la manière hard (le piti bouon reset en facade, ahemmm).
Pourl'instant, j'ai un bouton exit (surla Form principale ) qui fait :
Begin
Form_Nav.Close;
Application.processmessages;
Form_Hard.Close;
Application.processmessages;
Form_MP3.Close;
Application.processmessages;
Form_Main.Close;
end.
Bien evidement, les OnCLose de chaques form secondaires sont présents pour arreter les timers, liberer les images si besoins, fermer le prog de navigation proprement (et c'est pas du gateau), purger mes tableaux dynamique, fermer la carte interface.
En fait, chacune de ces form marche bien en tant qu'appli autonome, mais ensemble...
D'ou mon problème,comment fermer de manière propre une appli Multi Form.?
DeltaFX
Messages postés449Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention 8 avril 20092 14 oct. 2005 à 20:53
Résolu ! En traquant bien se qui se passait, à la fermeture du module hardware, la dll qui link le prog à la carte interface usb était tellement lente à faire son CloseDevice que le toute l'appli était déja fermée au moment où elle retournait son résultat => bug !
En fait ca s'est résolu au début en mettant 5 secondes de loop à faire des Application.Processmessages... c'est chiant, puis pris d'un doute je suis allé faire un tour sur le site du fabricant le carte I/O => dll updatée, temps de réaction quasi nul désormais, j'ai juste mis un sleep(10) histoire d'être sur.
DeltaFX
Messages postés449Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention 8 avril 20092 13 oct. 2005 à 10:14
Ca se produit à la fermeture de la fenetre principale. Et ca arrive aussi avec un application.terminate (et d'ailleurs j'ai lu ici que application.terminate n'était pas recommandé...)...