Jump to content
  • 0

Savoir Si Une Fenêtre Est Déjà Ouverte


Question

Bonjour

Dans mon interface, j'ai développé le Guide de mon application dans une palette flottante, c'est-à-dire par un bouton qui ouvre un modèle "Guide" dans une nouvelle fenêtre "Guide".

Je voudrais par script, vérifier que la fenêtre "Guide" est déjà ouverte, avant de l'ouvrir de nouveau si l'utilisateur cliquait une seconde fois sur le bouton qui appelle le "Guide". Sinon, il aura autant de fenêtres "Guide" qu'il appuiera sur le bouton.

En cherchant, j'ai bien trouvé l'action de script :

Si [obtenir (NomFenetre)] = "Guide"

mais cette action vérifie dans le contexte ouvert, qui n'est pas ma fenêtre "Guide". Donc la réponse est tjs négative, donc l'ouverture de ma fenêtre "Guide" s'effectue à chaque fois.

A-t-on moyen de savoir si une fenête est ou pas, déjà ouverte quelque soit le contexte ?

Merci bcp de votre aide.

Edited by Thierry Feltz
Link to post
Share on other sites

20 answers to this question

Recommended Posts

  • 0
(...) A-t-on moyen de savoir si une fenête est ou pas, déjà ouverte quelque soit le contexte ? (...)
Voici un exemple.

Bon courage.

Titre_de_la_fen__tre.fp7

Titre_de_la_fen__tre.fp7

Titre_de_la_fen__tre.fp7

Titre_de_la_fen__tre.fp7

Titre_de_la_fen__tre.fp7

Titre_de_la_fen__tre.fp7

Titre_de_la_fen__tre.fp7

Titre_de_la_fen__tre.fp7

Titre_de_la_fen__tre.fp7

Link to post
Share on other sites
  • 0

Bien compliqué ton histoire pour tester la présence d'une fenêtre ouverte.

Qu'est ce que tu entends par quel que soit le contexte ? (...)

Amar,

L'histoire du contexte n'est pas de moi. Mon exemple vient d'une réponse qu'avait faite Ugo, qu'il en soit encore remercié, quand j'avais demandé, il y a un certain temps, comment savoir que Laure ne fait pas partie de la liste : Anatole, Laurence, Roger. Car la fonction Occurrences va répondre que Laure en fait partie, ce qui est faux.

Meilleures salutations.

Link to post
Share on other sites
  • 0
(...) Gilles, (...) je ne comprends toujours pas à quoi peut servir ton script (...)
Amar,

Mon script est bien trop compliqué. Le Si interne peut être avantageusement remplacé par $VC résultat = ObtenirTexte ( DecompteValeurs ( ValeursFiltre ( NomsFenêtres ; $VC titre de la fenêtre ) ) ).

Le script a pour paramètre d'entrée le titre d'une fenêtre. En retour, il indique s'il existe une fenêtre ayant un tel titre. Le résultat est : "-1", l'appelant a oublié de passer le paramètre, "0", il n'y a pas de fenêtre avec un tel titre, "1" il y a une fenêtre avec ce titre.

L'idée est, quand on veut se servir du titre d'une fenêtre, de voir d'abord ce qu'il en est. On appelle le script avec en paramètre d'entrée ledit titre.

En espérant avoir été plus clair, meilleures salutations.

Link to post
Share on other sites
  • 0

Voici l'exemple promis :

Merci Amar.

J'ai compris par la description de ton script, mais impossible de décompacter ton fichier exemple zipé, j'ai une erreur de décompactage à chaque fois :(

Link to post
Share on other sites
  • 0

Désolé, j'arrive tard.

Il existe une fonction NomFenêtres() (pas sûr de l'accent et du S en français) dans la catégorie "Conception", qui renvoie la liste des fenêtres ouvertes.

Link to post
Share on other sites
  • 0

On peut faire très simple si on ne sait pas si la fenêtre "toto" est ouverte.

Scriptmaker

......

Fermer fenêtre "toto"

Ouvrir fenêtre "toto"

...

Dans tous les cas, elle s'ouvre en un exemplaire

C'est simpliste, mais efficace

Link to post
Share on other sites
  • 0

En fait je viens de mettre en place la solution proposée par Amar, elle me convient parfaitement et fonctionne exactement comme je le souhaitai.

Simple à comprendre, simple à mettre en place et non perturbant au niveau de l'affichage.

Merci Amar !

Link to post
Share on other sites
  • 0

Voici donc a quoi ressemblerait ton script d'ouverture de ton guide :

  • Si [Occurrences ( NomsFenêtres ; Obtenir ( ParamètreScript ) )>0]
  • Sélectionner fenêtre [Nom : Obtenir (paramètreScript)]
  • Sinon
  • Nouvelle fenêtre [Nom : Obtenir (paramètreScript)]
  • Fin de si

Sur le bouton qui exécute ce script d'ouverture de la fenêtre du guide il faut lui indiquer dans paramètre script le nom de ta fenêtre, de sorte qu''il l'ouvre si pas déjà ouverte ou l'active si déjà ouverte.

Juste, ne pas oublier avec Occurrences de rajouter les "¶" & et & "¶"

Occurrences ( "¶" & NomsFenêtres & "¶" ; "¶" & Obtenir ( ParamètreScript ) & "¶" ) > 0

histoire de pouvoir avoir une fenêtre "Tester" et également une fenêtre "Test" par exemple

(Amar, Help..... je ne comprends pas un chose...... j'ai ramassé ton fichier depuis 2 ordis différents...... et il est vide de script.... tu l'as caché ou ?....... je déraille à ce point ? )

Link to post
Share on other sites
  • 0
(...) Voici donc a quoi ressemblerait ton script d'ouverture de ton guide :
  • Si [Occurrences ( NomsFenêtres ; Obtenir ( ParamètreScript ) )>0]
  • Sélectionner fenêtre [Nom : Obtenir (paramètreScript)]
  • Sinon
  • Nouvelle fenêtre [Nom : Obtenir (paramètreScript)]
  • Fin de si

Sur le bouton qui exécute ce script d'ouverture de la fenêtre du guide il faut lui indiquer dans paramètre script le nom de ta fenêtre, de sorte qu''il l'ouvre si pas déjà ouverte ou l'active si déjà ouverte. (...)

Je suis désolé d'insister mais ce script ne va pas. Si l'on veut travailler avec la fenêtre "Laure", il va essayer de sélectionner la fenêtre "Laure" alors qu'il n'existe qu'une fenêtre "Laurence".

C'est pourquoi je prône :

  • Si [DecompteValeurs ( ValeursFiltre ( NomsFenêtres ; Obtenir ( paramètreScript ) ) ) > 0]
  • Sélectionner fenêtre [Nom : Obtenir ( paramètreScript )]
  • Sinon
  • Nouvelle fenêtre [Nom : Obtenir ( paramètreScript )]
  • Fin de si

Maintenant, chacun fait ce qu'il lui plaît.

Meilleures salutations.

Link to post
Share on other sites
  • 0
(...) J'ai eu 2 mn pour reconstruire un autre exemple que voici (...)
Amar,

Décidément, j'explique mal. Voici mon exemple.

Meilleures salutations.

Fenetre_Ouverte_2.fp7

Fenetre_Ouverte_2.fp7

Fenetre_Ouverte_2.fp7

Fenetre_Ouverte_2.fp7

Fenetre_Ouverte_2.fp7

Fenetre_Ouverte_2.fp7

Fenetre_Ouverte_2.fp7

Fenetre_Ouverte_2.fp7

Fenetre_Ouverte_2.fp7

Link to post
Share on other sites
  • 0

d'autant qu'on continue à se chamailler alors que le copain Thierry a déjà résolu son problème avec... ma solution :lol::lol::lol: Bonne journée

[un peu plus tôt....ne faisait pas nocturne apparemment hier ;) ]

Juste, ne pas oublier avec Occurrences de rajouter les "¶" & et & "¶"

Occurrences ( "¶" & NomsFenêtres & "¶" ; "¶" & Obtenir ( ParamètreScript ) & "¶" ) > 0

histoire de pouvoir avoir une fenêtre "Tester" et également une fenêtre "Test" par exemple

Donc

Test

Tester

Testes-Moi

FenêtreTest

etc

Ta Solution Amar, ne marche pas dans ce contexte si tu testes la présence de Test, parce que toutes les fenêtres ont l'occurrence 'Test'

Je prône également la solution de Gilles, et tu trouveras la réponse ici je pense

Buenos Dia

Link to post
Share on other sites
  • 0
Je comprends plus rien là, d'un côté tu dis je prône ceci (...)
Amar,

Clique sur le bouton "Fenêtre Laure" de mon exemple, c'est à dire le tien modifié, et tu verras que ça ne marche pas.

À bientôt.

Link to post
Share on other sites
  • 0
(...) Thierry, tu repasse par là remplace la première ligne du script par : Occurrences ( "¶" & NomsFenêtres & "¶" ; "¶" & Obtenir ( ParamètreScript ) & "¶" ) > 0
Amar,

Ne t'emmerde pas avec une dégelée de pieds de mouche, c'est à dire ¶. Ça, c'est le boulot de la fonction ValeursFiltre.

Amicalement.

Link to post
Share on other sites
  • 0

Bon je viens de tout relire.

Pour le moment, je n'ai pas le temps de me pencher sur vos différentes solutions et surtout, sur la version finale qui tient compte du fait que plusieurs fenêtres peuvent avoir des noms proches, voire identique.

Je vais donc en tenir compte, mais... plus tard.

Comme Amar, je vais encore en apprendre plus...

Amar disait : "c'est la faute à Thierry tout ça :ph34r: "

C'est ma grande spécialité Amar ^_^ !

Link to post
Share on other sites
  • 0

Ce sujet, parti il y a 14 ans de Paris, vient de parvenir en Belgique… Devinette : quel a été le moyen de locomotion employé ?    😉

EDIT : pardon pour la taquinerie et bienvenue sur le forum, Pitou5650   😌

Link to post
Share on other sites
  • 0
il y a 2 minutes, Jérémie Gimenez a dit :

Ce sujet, parti il y a 14 ans de Paris, vient de parvenir en Belgique… Devinette : quel a été le moyen de locomotion employé ?    😉

EDIT : pardon pour la taquinerie et bienvenue sur le forum, Pitou5650   😌

Bonjour

tout le monde sait que les Belges se sont arrêtés à l’époque de Jules César... et puis dans ma région on nous compare souvent à des escargots !

En fait  c’est ma propre recherche qui m’a amené sur cette question ... et puis j’ai réfléchi et imaginé cette solution.... je souhaitais néanmoins la partager si cela pouvait être utile à quelqu’un !

Bon’e journée !

Link to post
Share on other sites
  • 0

Ah mince, et nous on mange des escargots…

Merci Pitou et bienvenue encore !   😊

Link to post
Share on other sites
  • 0
Le 25/10/2006 à 22:04, LPN a dit :

Fermer fenêtre "toto

Bonjour @LPN

Que se passe-t-il quand on demande Fermer "Toto" si il n'y a pas de fenêtre Toto ouverte ?

Le 25/10/2006 à 22:29, Thierry Feltz a dit :

En fait je viens de mettre en place la solution proposée par Amar, elle me convient parfaitement et fonctionne exactement comme je le souhaitai.

Simple à comprendre, simple à mettre en place et non perturbant au niveau de l'affichage.

Merci Amar !

Et j'arrive 14 ans plus tard, moi aussi, et je ne vois plus le message d'@amar

Link to post
Share on other sites
  • 0
Le 19/11/2020 à 09:15, Jérémie Gimenez a dit :

pardon pour la taquinerie

Dis-donc, @Jérémie Gimenez, je ne te prendrais pas la main dans le sac d'une taquinerie contre mon second pays ? 'tention hein 😉

Edited by Abécé
Lapsus ;-)
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...