Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
surfeur75
Bonjour,
Je ne suis pas certain qu'il y ait une instruction qui gère l'état des form's, alors une variable public as string (je ne sais pas si on peut indicier une variable public), tu peux mettre dedans chaque fois qu'une form se ferme ou s'ouvre pour savoir où t'en es... -- @+, bye, Joe. Pour m'écrire ng75AROBASEnoosPOINTfr remplace AROBASE et POINT par leur vrai signe Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
"thetigers" a écrit dans le message de news: 00ee01c3c654$0c85be70$
comment savoir si une form est active (s'il elle est ouverte par l'instruction show)
ex: if frm_form1.active=true then
Bonjour,
Je ne suis pas certain qu'il y ait une instruction qui gère l'état des
form's, alors une variable public as string (je ne sais pas si on peut
indicier une variable public), tu peux mettre dedans chaque fois qu'une form
se ferme ou s'ouvre pour savoir où t'en es...
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
"thetigers" <thetigers@wanadoo.fr> a écrit dans le message de news:
00ee01c3c654$0c85be70$a301280a@phx.gbl...
comment savoir si une form est active (s'il elle est
ouverte par l'instruction show)
Je ne suis pas certain qu'il y ait une instruction qui gère l'état des form's, alors une variable public as string (je ne sais pas si on peut indicier une variable public), tu peux mettre dedans chaque fois qu'une form se ferme ou s'ouvre pour savoir où t'en es... -- @+, bye, Joe. Pour m'écrire ng75AROBASEnoosPOINTfr remplace AROBASE et POINT par leur vrai signe Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
"thetigers" a écrit dans le message de news: 00ee01c3c654$0c85be70$
comment savoir si une form est active (s'il elle est ouverte par l'instruction show)
ex: if frm_form1.active=true then
François Picalausa
"thetigers" a écrit dans le message de news:00ee01c3c654$0c85be70$
comment savoir si une form est active (s'il elle est ouverte par l'instruction show)
ex: if frm_form1.active=true then
Bonjour/soir,
une possibiité est celle ci:
Private Declare Function apiGetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long
Function GetActiveWindow() As Form Dim frm As Form
'on parcourt la collection des forms chargées For Each frm In Forms If apiGetActiveWindow = frm.hWnd Then Set GetActiveWindow = frm Exit For End If Next frm End Function
Exemple d'utilisation: Debug.Print "Form2 est actif ? :" & (GetActiveWindow.Name = "Form2")
"thetigers" <thetigers@wanadoo.fr> a écrit dans le message de
news:00ee01c3c654$0c85be70$a301280a@phx.gbl
comment savoir si une form est active (s'il elle est
ouverte par l'instruction show)
ex: if frm_form1.active=true then
Bonjour/soir,
une possibiité est celle ci:
Private Declare Function apiGetActiveWindow Lib "user32" Alias
"GetActiveWindow" () As Long
Function GetActiveWindow() As Form
Dim frm As Form
'on parcourt la collection des forms chargées
For Each frm In Forms
If apiGetActiveWindow = frm.hWnd Then
Set GetActiveWindow = frm
Exit For
End If
Next frm
End Function
Exemple d'utilisation:
Debug.Print "Form2 est actif ? :" & (GetActiveWindow.Name = "Form2")
"thetigers" a écrit dans le message de news:00ee01c3c654$0c85be70$
comment savoir si une form est active (s'il elle est ouverte par l'instruction show)
ex: if frm_form1.active=true then
Bonjour/soir,
une possibiité est celle ci:
Private Declare Function apiGetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long
Function GetActiveWindow() As Form Dim frm As Form
'on parcourt la collection des forms chargées For Each frm In Forms If apiGetActiveWindow = frm.hWnd Then Set GetActiveWindow = frm Exit For End If Next frm End Function
Exemple d'utilisation: Debug.Print "Form2 est actif ? :" & (GetActiveWindow.Name = "Form2")
Private Declare Function apiGetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long
Function GetActiveWindow() As Form Dim frm As Form
'on parcourt la collection des forms chargées For Each frm In Forms If apiGetActiveWindow = frm.hWnd Then
A chaque tour de boucle tu fais un appel à la fonction apiGetActiveWindow. En imaginant que cette fonction en interne fasse un traitement long et fastidieux, ce n'est pas très performant. Mieux vaut stocker la valeur de retour de la fonction dans une variable et travailler à partir de cette variable.
Set GetActiveWindow = frm Exit For End If Next frm End Function
Exemple d'utilisation: Debug.Print "Form2 est actif ? :" & (GetActiveWindow.Name = "Form2")
Evite de comparer des strings. Mieux vaut écrire : GetActiveWindow Is Form2. Dans ton code, une caparaison caractère par caractère est effectuée, ce qui est bien plus long qu'une comparaison d'une adresse.
Ceci dit, tout ton code peut se résumer à cette ligne de code suivante :
Debug.Print "Form1 est actif ? : " & (Screen.ActiveForm Is Form1)
Private Declare Function apiGetActiveWindow Lib "user32" Alias
"GetActiveWindow" () As Long
Function GetActiveWindow() As Form
Dim frm As Form
'on parcourt la collection des forms chargées
For Each frm In Forms
If apiGetActiveWindow = frm.hWnd Then
A chaque tour de boucle tu fais un appel à la fonction apiGetActiveWindow. En
imaginant que cette fonction en interne fasse un traitement long et
fastidieux, ce n'est pas très performant. Mieux vaut stocker la valeur de
retour de la fonction dans une variable et travailler à partir de cette
variable.
Set GetActiveWindow = frm
Exit For
End If
Next frm
End Function
Exemple d'utilisation:
Debug.Print "Form2 est actif ? :" & (GetActiveWindow.Name = "Form2")
Evite de comparer des strings. Mieux vaut écrire : GetActiveWindow Is Form2.
Dans ton code, une caparaison caractère par caractère est effectuée, ce qui
est bien plus long qu'une comparaison d'une adresse.
Ceci dit, tout ton code peut se résumer à cette ligne de code suivante :
Debug.Print "Form1 est actif ? : " & (Screen.ActiveForm Is Form1)
Private Declare Function apiGetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long
Function GetActiveWindow() As Form Dim frm As Form
'on parcourt la collection des forms chargées For Each frm In Forms If apiGetActiveWindow = frm.hWnd Then
A chaque tour de boucle tu fais un appel à la fonction apiGetActiveWindow. En imaginant que cette fonction en interne fasse un traitement long et fastidieux, ce n'est pas très performant. Mieux vaut stocker la valeur de retour de la fonction dans une variable et travailler à partir de cette variable.
Set GetActiveWindow = frm Exit For End If Next frm End Function
Exemple d'utilisation: Debug.Print "Form2 est actif ? :" & (GetActiveWindow.Name = "Form2")
Evite de comparer des strings. Mieux vaut écrire : GetActiveWindow Is Form2. Dans ton code, une caparaison caractère par caractère est effectuée, ce qui est bien plus long qu'une comparaison d'une adresse.
Ceci dit, tout ton code peut se résumer à cette ligne de code suivante :
Debug.Print "Form1 est actif ? : " & (Screen.ActiveForm Is Form1)
"Pierre Alexis [MVP]" a écrit dans le message de news:%
Evite de comparer des strings. Mieux vaut écrire : GetActiveWindow Is Form2. Dans ton code, une caparaison caractère par caractère est
Bonjour/soir,
Hier il me faisait une erreur type mismatch avec le Is... aujourd'hui, je réessaye et tout fonctionne.. hmm...
Par contre, ton code ne fonctionne pas comme le mien.. avec ton code, si tu active Notepad (par exemple), il renvoie toujours true sur la dernière form active... si il faut retrouver la form active pour savoir si on doit ou non un flashwindow, par exemple, ca peut être embétant...
Mais je me demande si c'est réellement ce que voulais faire thetigers qui a écrit:
(s'il elle est ouverte par l'instruction show)
Dans ce cas, il s'agit d'une boucle simple sur la collection forms avec test: Function IsActiveWindow(objFrm As Form) As Boolean Dim frm As Form
IsActiveWindow= False
'on parcourt la collection des forms chargées For Each frm In Forms If frm Is objFrm Then IsActiveWindow = True Exit For End If Next frm End Function
"Pierre Alexis [MVP]" <alexispierre@hotmail.com> a écrit dans le
message de news:%23OL106vxDHA.2568@TK2MSFTNGP09.phx.gbl
Evite de comparer des strings. Mieux vaut écrire : GetActiveWindow Is
Form2. Dans ton code, une caparaison caractère par caractère est
Bonjour/soir,
Hier il me faisait une erreur type mismatch avec le Is... aujourd'hui, je
réessaye et tout fonctionne.. hmm...
Par contre, ton code ne fonctionne pas comme le mien.. avec ton code, si tu
active Notepad (par exemple), il renvoie toujours true sur la dernière form
active... si il faut retrouver la form active pour savoir si on doit ou non
un flashwindow, par exemple, ca peut être embétant...
Mais je me demande si c'est réellement ce que voulais faire thetigers qui a
écrit:
(s'il elle est ouverte par l'instruction show)
Dans ce cas, il s'agit d'une boucle simple sur la collection forms avec
test:
Function IsActiveWindow(objFrm As Form) As Boolean
Dim frm As Form
IsActiveWindow= False
'on parcourt la collection des forms chargées
For Each frm In Forms
If frm Is objFrm Then
IsActiveWindow = True
Exit For
End If
Next frm
End Function
"Pierre Alexis [MVP]" a écrit dans le message de news:%
Evite de comparer des strings. Mieux vaut écrire : GetActiveWindow Is Form2. Dans ton code, une caparaison caractère par caractère est
Bonjour/soir,
Hier il me faisait une erreur type mismatch avec le Is... aujourd'hui, je réessaye et tout fonctionne.. hmm...
Par contre, ton code ne fonctionne pas comme le mien.. avec ton code, si tu active Notepad (par exemple), il renvoie toujours true sur la dernière form active... si il faut retrouver la form active pour savoir si on doit ou non un flashwindow, par exemple, ca peut être embétant...
Mais je me demande si c'est réellement ce que voulais faire thetigers qui a écrit:
(s'il elle est ouverte par l'instruction show)
Dans ce cas, il s'agit d'une boucle simple sur la collection forms avec test: Function IsActiveWindow(objFrm As Form) As Boolean Dim frm As Form
IsActiveWindow= False
'on parcourt la collection des forms chargées For Each frm In Forms If frm Is objFrm Then IsActiveWindow = True Exit For End If Next frm End Function