Sortie de mon form ...

Sortie de mon form ... - Delphi/Pascal - Programmation

Marsh Posté le 28-05-2003 à 16:06:37    

alors voila ... jai un form ( pas le principale )  
je le lance par leform.show et apres je quand je clique sur la croix du form pour le fermer ..  
au lieu de me le fermer completement , il me fait un leform.hide apparament  
 
moi je voudrai que quand je le ferme en cliquant sur la croix , il soit totalement fermé pour que quand je le rappelle , il se reinitialise completement voila :)

Reply

Marsh Posté le 28-05-2003 à 16:06:37   

Reply

Marsh Posté le 28-05-2003 à 16:46:44    

"complètement fermé", c'est pas une notion très concrète en fait :D Elle est soit cachée puis réaffichée soit détruite puis recréée
 
Dans ton cas la meilleure solution est la création "dynamique" de la form.
 
1. Dans les options du projet, mets la form "available form" (par défaut elle est en "auto create form" ), comme ça elle ne sera pas créée toute seule au démarrage de ton application.
2. Quand tu en as besoin, tu fais LaForm := TLaForm.Create(Application) puis LaForm.ShowModal;  
3. Dans son OnClose tu mets Action := caFree;
Attention à ne pas appeler LaForm après l'avoir refermée, vu qu'elle est alors détruite à la fermeture.
Si jamais tu veux pouvoir le faire (prendre des trucs dedans après l'avoir fermée visuellement) :
3b. À la place de mettre le truc dans OnClose, tu le mets quand tu n'as plus besoin de la form : LaForm.Free;
Il vaut mieux être sûr que pour chaque Create que tu fais tu feras un Free ;)


Message édité par antp le 28-05-2003 à 16:48:30

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 28-05-2003 à 17:04:31    

ok ca marche parfaitement ! encore merci

Reply

Marsh Posté le 28-05-2003 à 18:03:53    

en fait non , ca marche pas parfaitement  
 
si je fait ca dans le create de mon form  
client etant le form  
 
 
client.Color:=$00CCFF;
Chatbox.Color:=$33CC66;
GroupBox1.Color:=$33CC66;
MainCommand.Color:=$33CC66;
 
 
ca bug au moment du client:=Tclient.Create(application);
why ?  

Reply

Marsh Posté le 28-05-2003 à 18:48:58    

"dans le create de mon form", de quel form ? de client ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 28-05-2003 à 19:49:02    

oui

Reply

Marsh Posté le 28-05-2003 à 19:53:47    

Ha ouais c'est logique : dans le OnCreate il est pas encore sorti de la fonction TClient.Create, donc la valeur est pas encore assignée à Client.
Tu dois pas mettre Client.Color, tu peux mettre juste Color, ou Self.Color ;)


Message édité par antp le 28-05-2003 à 19:54:54

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed