Non réversibilité dans l'ouverture de deux forms sous Delphi [Résolu]

Signaler
-
 Utilisateur anonyme -
Salut à tous

Bon j'explique je suis nouveau sous Delphi avant je travaillais sous C++ donc la conversion est dure.

Voila j'ai deux forms Form1 avec un bouton "ALLER FORM2" et une FORM2 avec un bouton "ALLER FORM1".

Voila pour passer d'une FORM à l'autre je fais un hide et un showmodal. Pour aller de FORM1 à FORM2 ou de FORM2 à FORM1 pas de problème. Cependant si je fais FORM1--->FORM2 puis FORM2---->FORM1 (ou inversement) il y a un message d'erreur lors de la seconde action. Pourquoi?

5 réponses


Merci c'est bon petite conclusion maison pour aider les debutants



Passer d'une Forme 1 principale à une Form 2 de façon réversible



Form1 Form2
-------------------- ------------------------
- BTF1 - - BTF2 - BTF1 = bouton Form 1

- - - - BTF2 = bouton Form 2

- - - -

- - - -

- - - -

- - - -
-------------------- ------------------------

procedure TForm1.Button1Click(Sender: TObject);
begin
form1.hide;
form2.show;

procedure TForm2.Button1Click(Sender: TObject);
form2.hide;
form1.show;


Pas besoin de terminate sauf pour arreter mon programme si je veux. J'écris donc
procedure TForm1.Button2Click(Sender: TObject);//2ieme bouton dans la Form1
begin
Application.Terminate;
end;
end. //Et oui c'est le point ici et nont le point virgule (j'ai la faute tout à l'heure (20min à perdre son temps grrrrrrrrrrr)).
Messages postés
49
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
31 août 2008

fautes de 'impossible de rendre modal une fenetre visible '
Fais un petit raisonnement
form1.hind;
form2.showmodal;
ce fais exactement bien et ensuite
form2.hind;
form1.showmodal;
tu vois bien que la form2 est encord visible tout simplement elle est modal c en fais :
form1.hind;
form2.showmodal;.....c'est la l'erreur .....la fenetre est toujours visible
on peut pas la rendre modal;
2- pourquoi faire form1.showmodal c la fenetre principale elle ne doix pas etre modal ça n'as aucaun sens
3 - pourquoi form2.hide c mieux faire form2.close
donc ça fais comme ça
form1.hide;
form2.showmodal;
et dans unit2 :
form2.close;
form1.show;
et n'oublie pas si ferme form2 avec le button susyem de fermeture le programme ne s'arrete pas et la fenetre reste invisble donc dans l'evenement on close de form2 met application.terminate;
Messages postés
49
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
31 août 2008

Fais dans Onclose de form2 ---> form1.show
c mieux et enlever la syntaxe

, systeme , et je veux agrendie mes connaissance de programmation reseaux et net
Messages postés
49
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
31 août 2008

et enlever form1.show dans buttonclick de form2
je comprent pas pourquoi tu veux faire tout ça?

La réponse est simple je fais un programme Walid ou j'ai une fenetre principale Form1 qui a plusieurs boutons dont l'un est Form2. Dans Form2 j'ai un bouton Form 3 et un bouton Form2 . Je veux simplement pouvoir basculer d'une fenêtre à une auter (j'en 5 fenêtres en fait).


Voilà merci puur tout.