Savoir si une fenetre est chargee

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 213 fois - Téléchargée 71 fois

Contenu du snippet

Teste si une fenetre est chargee en memoire.
Cette fonction ne teste pas si la fenetre est visible.

Source / Exemple :


'**************************************************************************
' Name       : xIsFormLoaded
' Purpose    : Test if a form is loaded
' Syntax     : xIsFormLoaded(TheForm)
' Parameters : TheForm : The form to test
' Return     : True or False
'**************************************************************************
Public Function xIsFormLoaded(ByVal FormName As String) As Boolean
    Dim intCount As Integer
    
    xIsFormLoaded = False
    FormName = UCase(FormName)
    For intCount = 0 To Forms.Count - 1
        If UCase(Forms(intCount).Name) = FormName Then
            xIsFormLoaded = True
            intCount = Forms.Count
        End If
    Next
End Function

A voir également

Ajouter un commentaire

Commentaires

DBugs
Messages postés
10
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
21 janvier 2008
-
le code de leptidev est bien mieux, pourtant....


sauf qu'il charge la forme qu'on veut tester et si on veut tester si elle charger je pense qu'on veuile qu'elle se charge juste avant :p

Faut donc tester avec FormName (As String) et pas FormName.Name (en plus appeler le paramètre de type Form, FormName c'est pas très logique).

Je met 7 à Mr X à cause des UCase et du For To du coup c'est moins optimisé mais au moins ça fait ce que c'est censé faire.
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57 -
le code de leptidev est bien mieux, pourtant....

le test Min/Maj est inutile ici, et un For Each est plus rapide a executer qu'un For i ...
Proutie66
Messages postés
141
Date d'inscription
samedi 19 octobre 2002
Statut
Membre
Dernière intervention
14 avril 2008
-
euh ya 2 ligne de mois dans ton code leptidev
Ahem
...
leptidev
Messages postés
206
Date d'inscription
mercredi 30 janvier 2002
Statut
Membre
Dernière intervention
4 décembre 2007
-
Un peu long tu crois pas ????
Voici un code beaucoup plus rapide :

Public Function IsLoaded(ByVal FormName As Form) As Boolean
Dim formTEMP As Form
IsLoaded = False
For Each formTEMP In Forms
If formTEMP.Name = FormName.Name Then
IsLoaded = True
Exit Function
End If
Next
End Function

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.