Petite question idiote :)

cs_linux21 Messages postés 24 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 19 juin 2007 - 11 juin 2007 à 15:30
lofo18 Messages postés 30 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 29 septembre 2010 - 4 juil. 2007 à 09:57
Bonjour bonjour, voilà j'aimerai tester si une fiche est ouverte avant d'ouvrir la seconde ?!

petit exemple concret:

procedure TF_Principale.xxxxxxxxClick(Sender: TObject);
begin

        if tf_yyyyyyyy.???? then           // comment tester si yyyyy est ouvert ?
            begin                                      
                tf_yyyyyyyy.close;             
            end
application.createform(tf_xxxxxxxx, f_xxxxxxxx);
f_xxxxxxxx.show;
end;

Merci de vos réponses :)

15 réponses

Utilisateur anonyme
11 juin 2007 à 15:52
Salut

Deux Fiches et deux boutons sur Form 1

procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
If Form2.Showing then showmessage('oki');
end;

Et la c'est magique .

Pssss: Un autre truc super extraordinaire : la touche F1
0
Utilisateur anonyme
11 juin 2007 à 15:55
Ah puis un ptit truc pour la route : pense à mettre un titre explicite, ca t'évitera de te faire engueuler
0
cs_linux21 Messages postés 24 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 19 juin 2007
11 juin 2007 à 16:16
j'aurai voulu automatiser le tout et faire qque chose de propre en fait.

procedure TF_Principale.FactureClick(Sender: TObject);
begin
  if F_GestionDevis.Showing = true then
      begin
      F_GestionDevis.Close;
    end;
application.createform(tf_facture, f_facture);
f_facture.show;
end;

Pourquoi ça marche pas comme ça ?
ps: ma touche f1 marche pas, ça tente de dl qqchose sur le net mais ça veut pas :S
0
Oniria Messages postés 292 Date d'inscription dimanche 14 mars 2004 Statut Membre Dernière intervention 18 décembre 2014 3
11 juin 2007 à 16:29
Bonjour,

Pourquoi faire de la création dynamique de f_facture?
Autant laisser delphi créer la fiche dés le début. Je pense que c'est ton create qui ne fonctionne pas

Bon courage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_linux21 Messages postés 24 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 19 juin 2007
11 juin 2007 à 16:37
dynamique ? bon j'ai du mal m'exprimer. je reprends :

Application MDI, deux feuilles MDIChild : Facture et devis. En fait je voulais que chaque fois qu'on ouvre une d'elle, ça ferme l'autre. Tout ça pour éviter d'ouvrir plusieurs feuilles de chaque. Je m'y prend peut-être pas du tout comme il faut..
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
11 juin 2007 à 17:24
procedure TMainForm.ClickOpenFactureForm(Sender : TObject);
begin

  DevisForm.Hidde; { cache devis }
  FactureForm.Reset; { procedure qui reinitialise l'etat de FactureForm }

  FactureForm.Show; { affiche facture }
  FactureForm.BringToFront; { met au premier plan facture }
end;


procedure TMainForm.ClickOpenDevisForm(Sender : TObject);
begin

  FactureForm.Hidde; { cache facture }

  DevisForm.Reset; { procedure qui reinitialise l'etat de DevisForm }
  DevisForm.Show; { affiche devis }
  DevisForm.BringToFront; { mets au premier plan devis }
end;




_____________________________________________________




il y a deux choses infinie, l'univers et la connerie humaine, mais pour l'univers je suis pas sur...
0
cs_linux21 Messages postés 24 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 19 juin 2007
11 juin 2007 à 18:40
access violation. Je pense que ça vient du fait que vu que devis n'est pas forcément lancé, toi tu tente de cacher quelque chose qui n'existe pas encore. C'est la tout mon problème, faire une condition pour voir si la fiche existe. Mais showing me renvoie un message d'erreur. A moins que l'erreur ne vienne pas de là mais bon...
0
cs_linux21 Messages postés 24 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 19 juin 2007
11 juin 2007 à 18:55
Il existe quelque chose qui ressemble à "On error resume next" sur delphi ? comme sur vb ?
0
cs_linux21 Messages postés 24 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 19 juin 2007
12 juin 2007 à 12:51
personne?
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
12 juin 2007 à 13:55
On peut pas.

Si tu avais recherché un peu tu serais tombé sur une de mes réponses :

<hr size="2" width="100%" />Je ne pense pas qu'en Delphi on puisse, comme en VB, continuer le
programme comme si ne rien n'était s'il arrive une erreur et cela
parait logique (le role du developpeur est aussi (et essentiellement)
de débugger ses programmes pour qu'ils ne se plantent pas).

Mais
le try..except..end est très pratique et fonctionne merveilleusement
bien. (heureusement) Tu devrais t'y mettre car en Delphi (je ne sais
pas en VB) on ne publie pas un programme à moitié défaillant : on
traite les erreurs grâce à ce magnifique try..except..end; (ou
try..finally..end qui ne fait pas le même chose).

Si c'était possible en delphi de
faire cela, le Pascal ne serait plus ce qu'il était.
<hr size="2" width="100%" />
++
0
cs_linux21 Messages postés 24 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 19 juin 2007
12 juin 2007 à 14:27
comme si le pascal était... je vais me taire sinon je vais me faire des ennemis ^^
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
12 juin 2007 à 14:41
lol
C'est pas le moment de se faire des ennemis...

Mais valide au moins les réponses qui te conviennent.
0
cs_linux21 Messages postés 24 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 19 juin 2007
12 juin 2007 à 16:07
Bien je suis désolé mais aucune ne me convient :(
Je pensais que ce que je cherchais était simple, je voulais, à l'ouverture d'une MDIChild, que toutes les autres se ferment, pour ne pas avoir plusieurs feuilles ouvertes en même temps :-/

Va falloir que je trouve une autre solution je crois :(
0
cs_linux21 Messages postés 24 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 19 juin 2007
13 juin 2007 à 10:49
Puisse un admin supprimer mon topic ? je vais en créer un tout neuf parce que la c'est le b****l :-)
0
lofo18 Messages postés 30 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 29 septembre 2010
4 juil. 2007 à 09:57
Salut linux21

je pense que ce qui se rapproche le plus de "On error resume next"
en delphi, c'est le

TRY
   //Code à effectuer
EXCEPT
   //Code executé si une des instructions précédentes à échouée
END;

après tu peux utiliser un boolean qui est a true lorsque tu as ouvert la fenetre mais c'est pas très "propre"

bon courage
0
Rejoignez-nous