bonjour
je n 'arrive pas a rendre invisble la Form1 de mon application au demarage .
je voudrais que seul la Form3 soit visible .
est ce impossible ?
merci
bonjour
je n 'arrive pas a rendre invisble la Form1 de mon application au demarage .
je voudrais que seul la Form3 soit visible .
est ce impossible ?
merci
Salut,
il faut que tu modifie la form principale de ton projet.
En effet, la Form1 doit être définit comme form principal de ton projet et donc celle qui s'ouvre en premier, si tu veut modifier cela, tu doit aller dans les options du projet et dans l'onglet Fiche tu à un comboBox pour sélectionner ta Form principale
Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Lisez le magazine de developpez.com. Mes tutos : http://pottiez.developpez.com
La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français
N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .
oki merci mais cela fait planter mon prog , je m'explique :
il y a des variables globales qui sont calculés dans le Form 1 et utiliser dans le Form3 , or je voudrais que ce traitement n apparaisse pas au démarrage ( Form1 caché ) . mais que les résultats soit visible au démarrage dans le Form3 .
C est possible ?
C'est possible de rendre invisible la Form1, mais cela prendra effet que si tu le fait après le Show du démarrage du programme, donc la Form1 va forcement s'afficher un petit moment
Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Lisez le magazine de developpez.com. Mes tutos : http://pottiez.developpez.com
La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français
N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .
oki tant pis je prendre ta solution . comment faire ?
Ce n'est surement pas la solution la plus propre, mais en voici une :
Ajouter un TTimer à la Form1 avec pour propriété Interval 1 et Enabled false
Dans l'évènement OnCreate de la Form1 modifier la propriété Enabled du timer et la mettre à true, et dans l'évènement OnTimer, mettre la propriété Visible de la Form1 à false et le Enabled du timer à false également.
Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Lisez le magazine de developpez.com. Mes tutos : http://pottiez.developpez.com
La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français
N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .
merci ca marche bien au demarrage , mais j ai oublie de préciser qu il fallait que la Form1 soit accessible par la suite , grâce a un bouton de la Form3. Or la forcement la forme1 n 'apparait que pendant 1s. J 'avais penser mettre un booleen en condition sur le enable du timer . mais je ne vois pas ou l'initialiser?
Normalement dans le bouton de ta Form3, tu as juste mis Form1->Show() et ça devrait fonctionner normalement
Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Lisez le magazine de developpez.com. Mes tutos : http://pottiez.developpez.com
La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français
N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .
ben non ca ne marche pas .
j 'ai peut etre commis une erreur:
c est bien la qu il fallait mettre le timer ?
ok je pense que je n'ai pas bien compris , comment fait ton pour entrer des les lignes de codes dans le evenement OnCreate et Ontimer , desoler je debute ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 _fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Timer1 -> Enabled = true ; }
et avec :
ShowMainForm = false ;
dans le constructeur de la fenêtre principale ça donne quoi ?
niveau code c est ca ?
ShowMainForm non definit ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { ShowMainForm = false ; }
Met plutôt ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Application->ShowMainForm = false ; }
Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Lisez le magazine de developpez.com. Mes tutos : http://pottiez.developpez.com
La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français
N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .
Salut !
Avec BCB3 Pro il y a une astuce donc vérifier ce qu'il en sera avec votre version.
Il s'agit de construire Form3 dans le constructeur de Form1 et donc d'en supprimer la construction depuis la WinMain en modifiant le Source du projet.
Ca donne ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->CreateForm(__classid(TForm2), &Form2); // Application->CreateForm(__classid(TForm3), &Form3); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } return 0; }
Dans le constructeur de Form1 (qui est normalement la principale) :
Il n'y aura rien d'autre à faire, en hors d'initialiser ce qui doit l'être dans Form1 avant la création de Form3 pour qu'elle puisse l'utiliser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { //Initialiser ... //... //... pour que Form3 exploite ce qui a lieu d'être //puis : Form3 = new TForm3(Owner); Form3->ShowModal(); }
Le fait de solliciter Form3 en Modal n'a pas d'incidence sur ce qu'elle est (sauf MDIChild bien sûr !!!)!
A plus !
Lorsque tu as un objet sélectionné (Form, TTimer,...) tu as l'inspecteur d'objet correspondant à cet objet (généralement en bas à gauche de l'écran).
Dans l'inspecteur d'objet, tu as un onglet évènement, dans cette onglet tu as la liste des évènements disponible pour cet objet, tu peut alors double cliqué sur l'évènement voulu, ce qui te permettra de mettre le code dans l'évènement.
Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Lisez le magazine de developpez.com. Mes tutos : http://pottiez.developpez.com
La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français
N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .
faut pas que form 1 soit parent ou owner de form3 sinon effectivement, elle s'affichera qd meme. donc ..=new TForm3(NULL) et tu feras son delete dans le destructeur de TForm1
et mettre ShowMainForm ne suffit pas, il faut aussi mettre visible à false (il faut les 2).
Je dis tout ça de théorie, mais ici on utilise toujours showmainform sans soucis pour faire ça, donc ça doit marcher
Salut !
Et ma solution ?
Vous l'avez testée pour savoir si ça fonctionne avec les versions ultérieures à BCB3 Pro ?
A plus !
c est bon j ai réussit . la solution était la suivante :
- mettre un timer dans la form1
- dans formcreate : enabled timer = true
- dans le timer visible = false
et ensuite pour que ça marche dans mon bouton de la form3
- enabled timer = false
- visible = true
merci à tous désoler je n'ai pas tester l'autre solution , qui me paraissait bien complique pour mon niveau.
Désolé, henderson, je n'avais pas vu ton post , mais je confirme que cette solution, plus propre que la mienne, fonctionne sur toutes les versions
Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Lisez le magazine de developpez.com. Mes tutos : http://pottiez.developpez.com
La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français
N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager