Petit problème avec showmodal

Signaler
Messages postés
89
Date d'inscription
jeudi 11 avril 2002
Statut
Membre
Dernière intervention
3 juillet 2003
-
Messages postés
449
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
-
Salut tout le monde,
j'ai un problème avec showmodal, quand je suis dans une form je veux passer à une autre et faire disparaître celle dans laquelle je suis, je fais:
begin
form1.visible:=false;
form2.showmodal;
end;
ok là, sa marche après quand je suis sur cette deusième form (form2) je veux revenir sur l'ancienne en faisant disparaître celle que je viens d'ouvrir:
begin
form1.visible:=true;
form2.visible:=false;
end;
OK là sa marche aussi mais quand je fais ces opération à la suite et que je refais la première après (form1.visible:=false...) sa ne marche plus et sa me dit "impossible de rendre modale une fenêtre visible."
Que dois-je faire?
j'éspère que j'ai été assez clair dans mon expliquation;-)

11 réponses

Messages postés
209
Date d'inscription
lundi 11 février 2002
Statut
Membre
Dernière intervention
13 décembre 2002

Hmm c'est bizard...

Pourquoi ne fais tu pas simplement

begin
Form1.Visible:=False;
Form2.ShowModal;
Form1.Visible:=True;
end;

Ton prob viens de Form2.visible:=False je crois.

Babaille.
Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
2
Tu devrais faire Form2.Close.
Il ne vaut mieux pas en général utiliser Form.visible, sauf pour la fenêtre principale car Form.Close ferme l'application entière.

--- :sleepy) Nono du Moulin :sleepy) ---
Messages postés
89
Date d'inscription
jeudi 11 avril 2002
Statut
Membre
Dernière intervention
3 juillet 2003

En fait j'ai trouvé la solution moi même juste après avoir posté le message...arf...j'ai une autre question: je fais ouvrir un opendialog n'acceptant que les .exe puis je mes le chemin du .exe selectionné dans une listbox et j'aimerai que l'on puisse en clickant sur un des logiciels présent dans la lisbox accedé à ce logiciel
Comment dois-je procédé?
Messages postés
209
Date d'inscription
lundi 11 février 2002
Statut
Membre
Dernière intervention
13 décembre 2002

Il faut utiliser le fameux ShellExecut de la sorte :

uses ShellApi;

begin
ShellExecute(Handle, 'open', 'tonexe.exe', nil, nil)
end;

Bon ya d'autre solution bien sur, je te livre ici la plus connu, ca marche aussi avec les autres fichiers.

Babaille.

PS: La reponse se trouvait deja sur le site.
Messages postés
833
Date d'inscription
dimanche 6 janvier 2002
Statut
Membre
Dernière intervention
3 novembre 2005
1
Au cas où, comme tu n'as pas précisé si tu as besoin de savoir comment récupérer le chemin de l'exe cliqué dans la listbox, voici le truc :

uses ShellApi;

Var Fichier: String;

begin

Fichier := ListBox1.Items.Strings[ListBox1.ItemIndex];
ShellExecute(Form1.Handle, 'open', Fichier, nil, nil);
end

@+
Bestiol.
Messages postés
89
Date d'inscription
jeudi 11 avril 2002
Statut
Membre
Dernière intervention
3 juillet 2003

Merci Bestiol c'est que je voulais savoir.
Et encore merci à tous ceux qui réponde dans ce forum quand on a un probème.
Messages postés
89
Date d'inscription
jeudi 11 avril 2002
Statut
Membre
Dernière intervention
3 juillet 2003

Quand je met le code
ya une érreur à cette ligne:
ShellExecute(Form5.Handle, 'open', Fichier, nil, nil);
et sa me dit type incompatibles string et PCchar
Messages postés
89
Date d'inscription
jeudi 11 avril 2002
Statut
Membre
Dernière intervention
3 juillet 2003

J'ai pas trop compris l'aide de delphi voilà mon code:

var
chemin:string;

begin
Fichier:=ListBox1.Items.Strings[ListBox1.ItemIndex];
ShellExecute(Form5.Handle, 'open', chemin, nil, nil);
end;
Que doi-je y rajouter???
merci!
Messages postés
209
Date d'inscription
lundi 11 février 2002
Statut
Membre
Dernière intervention
13 décembre 2002

Je vais pas remettre le liens...

Babaille
Messages postés
1
Date d'inscription
dimanche 19 mai 2002
Statut
Membre
Dernière intervention
20 mai 2002

BNN

Cette suite de questions réponses me laisse sur la faim car vous dîtes avoir trouvé la solution mais sans la donner. pourriez vous me la fournir merci
Messages postés
449
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
2
Heu... quoter les n+1 message precédent, c'est lourd a scroller, au fait.

gnh !