Petite question idiote :)

Signaler
Messages postés
24
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2007
-
Messages postés
30
Date d'inscription
mardi 19 avril 2005
Statut
Membre
Dernière intervention
29 septembre 2010
-
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


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

Ah puis un ptit truc pour la route : pense à mettre un titre explicite, ca t'évitera de te faire engueuler
Messages postés
24
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2007

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
Messages postés
292
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
18 décembre 2014
3
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
Messages postés
24
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2007

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..
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
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...
Messages postés
24
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2007

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...
Messages postés
24
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2007

Il existe quelque chose qui ressemble à "On error resume next" sur delphi ? comme sur vb ?
Messages postés
24
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2007

personne?
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
2
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%" />
++
Messages postés
24
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2007

comme si le pascal était... je vais me taire sinon je vais me faire des ennemis ^^
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
2
lol
C'est pas le moment de se faire des ennemis...

Mais valide au moins les réponses qui te conviennent.
Messages postés
24
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2007

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 :(
Messages postés
24
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2007

Puisse un admin supprimer mon topic ? je vais en créer un tout neuf parce que la c'est le b****l :-)
Messages postés
30
Date d'inscription
mardi 19 avril 2005
Statut
Membre
Dernière intervention
29 septembre 2010

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