Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Charger une fenetre sans l'utiliser

6 réponses
Avatar
mtournier
Bonjour ,

je cherche une fonction qui permet d'utiliser une fenetre sans
l'afficher. En VB je fais :

*************************************************************
dim f as new MaFenetre ' je declare un nouvelle fenetre
load f ' je charge en memoire ma fentetre
f.caption = "titre de la fenetre" ' je modifie des proprietes de la
fenetre ou de ses objets
f.maListe.backcolor = QBcolor(12) ' je met la liste en rouge (c'est pas
beau mais bon ..)
for i = 0 to 10
f.maListe.addItem ("ligne " & i ) ' j'ajoute 10 lignes a ma liste
next
f.show 1 ' et seulement ici j'affiche ma fenetre
****************************************************************

je cherche a faire la meme chose avec Windev :
1) faire une recherche
2) charger une fentetre en memoire
3) changer des proprietes de la fenetre ou des objets contenus dans
celle-ci.
4) remplir une liste du resultat de ma recherche
5) afficher la fenetre.

Ceci permettrai d'utiliser la meme fenetre pour plusieurs type de
recherche / affichage / etc ...


Amicalement

Marc

6 réponses

Avatar
sebNews
> je cherche a faire la meme chose avec Windev :
1) faire une recherche
2) charger une fentetre en memoire
3) changer des proprietes de la fenetre ou des objets contenus dans
celle-ci.
4) remplir une liste du resultat de ma recherche
5) afficher la fenetre.

Ceci permettrai d'utiliser la meme fenetre pour plusieurs type de
recherche / affichage / etc ...


Amicalement

Marc




Bonjour,

MaFenetre..Visibleúux
// Traitement
MaFenetre..Visible=vrai

OU / ET afficher la fenêtre hors écran

Sébastien
Avatar
Pascal ROY
a écrit :
Bonjour ,

je cherche une fonction qui permet d'utiliser une fenetre sans
l'afficher. En VB je fais :

*************************************************************
dim f as new MaFenetre ' je declare un nouvelle fenetre
load f ' je charge en memoire ma fentetre
f.caption = "titre de la fenetre" ' je modifie des proprietes de la
fenetre ou de ses objets
f.maListe.backcolor = QBcolor(12) ' je met la liste en rouge (c'est pas
beau mais bon ..)
for i = 0 to 10
f.maListe.addItem ("ligne " & i ) ' j'ajoute 10 lignes a ma liste
next
f.show 1 ' et seulement ici j'affiche ma fenetre
****************************************************************

je cherche a faire la meme chose avec Windev :
1) faire une recherche
2) charger une fentetre en memoire
3) changer des proprietes de la fenetre ou des objets contenus dans
celle-ci.
4) remplir une liste du resultat de ma recherche
5) afficher la fenetre.

Ceci permettrai d'utiliser la meme fenetre pour plusieurs type de
recherche / affichage / etc ...


Amicalement

Marc



Je passerais en paramètre un booléen pour savoir si je dois l'afficher
ou pas, et mettrais maFenetre..visible = MonParamVisible dans
le traitement d'ouverture de la fenêtre.

Sinon, tu peux aussi définir la fenêtre comme étant "hors ecran" à la
conception.

Pascal
Avatar
mtournier
quand je fais maFenetre..visible = vrai , la fenetre n'est pas modale.
On peut cliquer sur un bouton que l'on voit "en dessous".

On a une propriete qui passe la fenetre en modale ? quand j'essaie
avec la fonction ouvre( ) , le programme attend la fermeture pour
continuer (normal..) et j'ai une erreur comme quoi la fenetre n'existe
pas (toujours normal ..)

Mon code :
-------------------------------------------------------------------
OuvreFille(frmrechercher,Faux) ' faux est le parametre pour ne pas
afficher la fenetre
i est entier
POUR i = 1 A 20
ListeAjoute(frmrechercher.Liste1,"test " + i)
FIN
frmrechercher..Visible=Vrai
----------------------------------------------------------------------
merci pour votre aide

Marc
Avatar
sebNews
> Mon code :
-------------------------------------------------------------------
OuvreFille(frmrechercher,Faux) ' faux est le parametre pour ne pas
afficher la fenetre
i est entier
POUR i = 1 A 20
ListeAjoute(frmrechercher.Liste1,"test " + i)
FIN
frmrechercher..Visible=Vrai
----------------------------------------------------------------------
merci pour votre aide





Pourquoi ne pas mettre ce code dans une procédure locale à la fenêtre ?
Plusieurs procédures locales possibles dans la fenêtre

Procedure Liste :
i est entier
POUR i = 1 A 20
ListeAjoute(frmrechercher.Liste1,"test " + i)
FIN
frmrechercher..Visible=Vrai

Dans le code d'ouverture de la fenêtre :
PROCEDURE ouvert(lancer_procedure="defaut")

ExécuteTraitement ( frmrechercher.lancer_procedure, trtProcédure )
( Utiliser les indirections : pour NomFenêtre.NomProcédure)

Tu ouvre ta fenêtre avec OUVRE( frmrechercher,Liste)


Sébastien
Avatar
mtournier
C'est vrai, ta remarques est tout a fait fondée, je suis en train de
me battre avec 10 ans d'habitudes (bonnes et mauvaises ...) de Visual
Basic ...

Et c'est vrai que j'ai de la peine a me laisser guider par les
assistants et les clics boutons.
J'ai tendance a réinventer la roue a chaques ligne de code. A moi de
devenir plus faignant.
Mais bon pour l'instant j'en suis au stade de la formation .. et je
dois être très très nul , j'ai dépassé de beaucoup les 10 jours
promis dans la pub :-)

Bon pas de fonction pour endre modale une fenêtre "par après" ... je
vais faire avec.

merci pour vos réponses


Marc
Avatar
Pascal ROY
La gestion des fenêtre Modal et non Modal dans Windev se fait lors de
l'ouverture.
Contrairement à la plupart des langages évolués, Windev gère la création
et l'ouverture avec une seule et même fonction. C'est le choix de cette
fonction qui détermine le mode d'ouverture.

Dans ton code, remplace OuvreFille par Ouvre et hop, ta fenêtre devient
modale !

Il existe 3 (4 à la rigueur) fonction d'ouverture de fenêtre dans Windev.

Ouvre : qui créé une fenêtre et l'ouvre de façon modale
OuvreFille et OuvreSoeur : qui crééent une fenêtre et l'ouvre de façon
non modale.

La 4eme procédure est Utilise, mais il ne faut pas se servir de cette
fonction, elle est appellé de manière transparente pour créer la
première fenêtre du projet.



a écrit :
quand je fais maFenetre..visible = vrai , la fenetre n'est pas modale.
On peut cliquer sur un bouton que l'on voit "en dessous".

On a une propriete qui passe la fenetre en modale ? quand j'essaie
avec la fonction ouvre( ) , le programme attend la fermeture pour
continuer (normal..) et j'ai une erreur comme quoi la fenetre n'existe
pas (toujours normal ..)

Mon code :
-------------------------------------------------------------------
OuvreFille(frmrechercher,Faux) ' faux est le parametre pour ne pas
afficher la fenetre
i est entier
POUR i = 1 A 20
ListeAjoute(frmrechercher.Liste1,"test " + i)
FIN
frmrechercher..Visible=Vrai
----------------------------------------------------------------------
merci pour votre aide

Marc