OVH Cloud OVH Cloud

Control Indexé

5 réponses
Avatar
Sebastien
Bonjours, existe t'il un moyen de connaître si un objet a été indexé ?

je m'explique, j'ai un Bouton Comd1 et 3 bouton Cmd2(0),Cmd2(1),Cmd2(2)
dans une fonction je passe en paramètre l'object de la feuille, donc je fais
monobject.index, si il contient un index il me l'indique, sinon il plante.
il y a moyen de récupérer l'erreur, mais je voulais savoir si il n'existait
pas une methode plus propre ?

merci
--
a++
Sebastien
s.dieudonne@inosys.net ou inosys@hotmail.com
---------------------------------------------------------------------------
Un addin bien sympa qui facilite la prog objet (Génération automatique de
code) et la gestion d'erreur sous VB6.0 :-)
http://www.inosys.net/genclass/vb6/addingenclass.zip

5 réponses

Avatar
Ledev
"Sebastien" a écrit dans le message de
news:3f150b80$0$241$
Bonjours, existe t'il un moyen de connaître si un objet a été indexé ?

je m'explique, j'ai un Bouton Comd1 et 3 bouton Cmd2(0),Cmd2(1),Cmd2(2)
dans une fonction je passe en paramètre l'object de la feuille, donc je


fais
monobject.index, si il contient un index il me l'indique, sinon il plante.
il y a moyen de récupérer l'erreur, mais je voulais savoir si il


n'existait
pas une methode plus propre ?



tu peut avoir l'index supérieur avec .uboud, et l'inférieur avec .LBound.

Maintenant, pour les erreurs, il n'y a rien de "malpropre" à les utilisée,
l'utilisateur n'y verra rien et ça n'est pas considérer comme un bug de ton
appli:


function vrfy(obj as object, idx as intéger) as boolean
dim tmp as string

on error goto erreur
tmp=obj(idx).tag
on error goto 0
vrfy=true

erreur:
vrfyúlse
exit function
resume
end function

et là tu appelle Vrfy.

Mais rappelle toi, c'est pas parce que la gestion d'erreur se déclenche que
c'est pas propre et que ton application est buguer.
a+
Avatar
Clive Lumb
Tu peux faire

if typeof MonObj is CommandButton then ...
' c'est un bouton simple
else
' c'est un groupe de boutons (sauf si tu a passé autre chose...)
endif

Aussi Vartype(MonObj) retourne vbBoolean pour un bouton simple et vbObject
pour un groupe

Clive


"Sebastien" a écrit dans le message de news:
3f150b80$0$241$
Bonjours, existe t'il un moyen de connaître si un objet a été indexé ?

je m'explique, j'ai un Bouton Comd1 et 3 bouton Cmd2(0),Cmd2(1),Cmd2(2)
dans une fonction je passe en paramètre l'object de la feuille, donc je


fais
monobject.index, si il contient un index il me l'indique, sinon il plante.
il y a moyen de récupérer l'erreur, mais je voulais savoir si il


n'existait
pas une methode plus propre ?

merci
--
a++
Sebastien
ou
--------------------------------------------------------------------------


-
Un addin bien sympa qui facilite la prog objet (Génération automatique de
code) et la gestion d'erreur sous VB6.0 :-)
http://www.inosys.net/genclass/vb6/addingenclass.zip




Avatar
Ledev
Ah, oups, j'avais mal compris la question

"Ledev" a écrit dans le message de
news:%

"Sebastien" a écrit dans le message de
news:3f150b80$0$241$
> Bonjours, existe t'il un moyen de connaître si un objet a été indexé ?
>
> je m'explique, j'ai un Bouton Comd1 et 3 bouton Cmd2(0),Cmd2(1),Cmd2(2)
> dans une fonction je passe en paramètre l'object de la feuille, donc je
fais
> monobject.index, si il contient un index il me l'indique, sinon il


plante.
> il y a moyen de récupérer l'erreur, mais je voulais savoir si il
n'existait
> pas une methode plus propre ?

tu peut avoir l'index supérieur avec .uboud, et l'inférieur avec .LBound.

Maintenant, pour les erreurs, il n'y a rien de "malpropre" à les utilisée,
l'utilisateur n'y verra rien et ça n'est pas considérer comme un bug de


ton
appli:


function vrfy(obj as object, idx as intéger) as boolean
dim tmp as string

on error goto erreur
tmp=obj(idx).tag
on error goto 0
vrfy=true

erreur:
vrfyúlse
exit function
resume
end function

et là tu appelle Vrfy.

Mais rappelle toi, c'est pas parce que la gestion d'erreur se déclenche


que
c'est pas propre et que ton application est buguer.
a+




Avatar
Sebastien
en fait j'ai du mal m'exprimer, desoler, je vais vous donné un exempledu
code sa vous permetra de mieux comprendre ce que je cherche :-)


en fais au final ce que je cherche a fair c'es passer un fentre en parametre
et une liste, puis il m'affiche tous les control existant sur la feuille, et
pour chaque control certaine prorieter :-) voila !

merci encore

'---------------------------------------------------------------------------
-----------------------------

Public Function ListeControl(ByVal pForme As Form, Optional ByVal pListeView
As ListView)

Dim i As Object
Dim lControlNom As String
Dim lControlType As String

For Each i In pForme.Controls

lControlNom = i.Name
lControlType = TypeName(i)

'a partire de la jeveux savoir si il fais partie d'un collection ou pas
' le traitement ne sera pas le meme derriere

'if i.index is nothing then
' 'Pas d'index je c'es qu'il napartient pas a une collection
'else
' 'Indexer, je recupère le numero de l'index, sa me permet de gerer les
numero dans la collection :-)
'End If

Select Case LCase(lControlType)

Case "commandbutton"
Case "listbox"
Case "combobox"
Case "listview"
Case "data"
Case "statusbar"
Case "picturebox"
Case "textbox"
Case "animation"
Case "toolbar"
Case "optionbutton"
Case "checkbox"
Case "frame"
Case "toolbar"
Case "label"
Case "hscrollbar"
Case "vscrollbar"
Case "filelistbox"
Case "progressbar"
Case "monthview"
Case "imagecombo"
Case "tabstrip"
Case "dirlistbox"
Case "drivelistbox"
Case "timer"
Case "imagelist"
Case "treeview"
Case "shape"
Case "slider"

Case Else

End Select

Next

End Function

'------------------------------------

--
a++
Sebastien
ou
---------------------------------------------------------------------------
Un addin bien sympa qui facilite la prog objet (Génération automatique de
code) et la gestion d'erreur sous VB6.0 :-)
http://www.inosys.net/genclass/vb6/addingenclass.zip
"Ledev" a écrit dans le message de news:

Ah, oups, j'avais mal compris la question

"Ledev" a écrit dans le message de
news:%
>
> "Sebastien" a écrit dans le message de
> news:3f150b80$0$241$
> > Bonjours, existe t'il un moyen de connaître si un objet a été indexé ?
> >
> > je m'explique, j'ai un Bouton Comd1 et 3 bouton


Cmd2(0),Cmd2(1),Cmd2(2)
> > dans une fonction je passe en paramètre l'object de la feuille, donc


je
> fais
> > monobject.index, si il contient un index il me l'indique, sinon il
plante.
> > il y a moyen de récupérer l'erreur, mais je voulais savoir si il
> n'existait
> > pas une methode plus propre ?
>
> tu peut avoir l'index supérieur avec .uboud, et l'inférieur avec


.LBound.
>
> Maintenant, pour les erreurs, il n'y a rien de "malpropre" à les


utilisée,
> l'utilisateur n'y verra rien et ça n'est pas considérer comme un bug de
ton
> appli:
>
>
> function vrfy(obj as object, idx as intéger) as boolean
> dim tmp as string
>
> on error goto erreur
> tmp=obj(idx).tag
> on error goto 0
> vrfy=true
>
> erreur:
> vrfyúlse
> exit function
> resume
> end function
>
> et là tu appelle Vrfy.
>
> Mais rappelle toi, c'est pas parce que la gestion d'erreur se déclenche
que
> c'est pas propre et que ton application est buguer.
> a+
>
>




Avatar
Clive Lumb
S'il appartient à une collection son type est vbObject

'a partire de la jeveux savoir si il fais partie d'un collection ou pas
' le traitement ne sera pas le meme derriere

'if i.index is nothing then
' 'Pas d'index je c'es qu'il napartient pas a une collection
'else
' 'Indexer, je recupère le numero de l'index, sa me permet de gerer les