Bonjour à tous,
Sous BCB C++, soit une TForm "principale" appelée Form1 qui contient un bouton. Ce bouton sert à ouvrir une seconde TForm appelée Form2.
Je voudrais savoir (c'est très certainement une question basique) qu'elle est la différence entre réaliser l'ouverture de cette Form2 avec :
1)
2) ou tout simplement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 TForm2 *F = new TForm2(this) F -> Show();
Je demande cela car il m'est apparu un problème d'affichage de TEdit dans la Form2. En effet, si la Form2 contient un TEdit appelé Edit1, dans le cas où Form2 est ouverte par 1), le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Form2 -> Show();
a)
n'affiche rien (que le code soit placé à la création de Form2 ou bien suite à clic sur un bouton de Form2) tandis que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Form2->Edit1->Text = "essai";
b)
Or dans le cas où Form2 et ouverte par 2), le code a) fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Edit1->Text = "essai";
C'est peut-être insignifiant comme cela mais si l'on cherche à faire du thread sur Form2 et que Edit1 doit être mis à jour régulièrement (par ex. état d'avancement du sous-code de Form2 contenu dans son thread), eh bien on est coincé (rien ne s'affiche) si l'on utilise l'ouverture suivant 1) .
Merci de m'indiquer également la différence entre this et NULL pour 1). Je pense qu'il s'agit de gérer la dépendance de Form2 vis-à-vis de Form1 mais je n'en suis pas sûr.
Je vous remercie à l'avance pour votre aide.
Partager