Arf, je viens de comprendre toute cette bidouille archi moche ;(
(Et g aussi trouvé pour le LSet)
En fait on utilise une variable globale pour se passer les infos entre modules
Pour ma part, je préfère (surtout pour un Type ne possédant que 4 attributs) passer par une classe.
on a donc
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
la Classe
cRECT
Public Left As Long
Public Top As Long
Public Right As Long
Public Bottom As Long
et les deux fonctions dans un module
Public Function R_to_cR(ByRef R As RECT, ByRef cR As cRECT)
R.Bottom = cR.Bottom
R.Left = cR.Left
R.Right = cR.Right
R.Top = cR.Top
End Function
Public Function cR_to_R(ByRef cR As cRECT, ByRef R As RECT)
cR.Bottom = R.Bottom
cR.Left = R.Left
cR.Right = R.Right
cR.Top = R.Top
End Function
ainsi, on peut stoquer les données et se les passer entre classes
et lorsqu'on doit travailler avec les API on fait
Dim tmpR as RECT
Call cR_to_R(cR, tmpR)
Call fncAPI(blabla avec tmpR)
Call R_to_cR(tmpR, cR)
perso je trouve cela vraiment plus propre
si vous connaissez une autre méthode je suis a l'écoute
PS: j'ai corrigé le code et maintenant je peu utiliser pls controls
je rectifie le post fait précédement,
le problème pour avoir plusieurs MenuFirefox le problème ne viens pas du subclassing mais de l'utilisation "publique" de c_ColMenuFox et peut être de mRectCase
J'ai bien réussi a "privatiser" c_ColMenuFox en l'associant à la classe cDrawMenuFox mais je n'y parviens pas pour mRectCase qui est une structure.
J'ai vu l'emploie de "LSet" un peut partout dans le code. Je n'arrive pas a trouver sa signification sur le Net. Je suis presque sur que la solution viendrait de là.
Saurriez vous m'expliquer le "LSet" ?
Petits bugs :
- la propriété Alligne n'est pas sauvegardée par le composant. Elle se remet à AlignLeft par défaut. (normal ou pas ?)
- impossible d'utiliser plusieur barres de menu (le subclassing ne semble pas savoir rediriger l'évènement. Ajout d'un index unique pourrait-il corriger le problème.
Améliorations envisageables (je travail actuellement dessus)
- Remplacer les cadres rectengulaires par des rectangles arrondis (facil a faire ^^)
- Ajouter une image de fond au menu (+ transparence des boutons dessus)
- Ajouter un mask d'ombre pour les boutons (vraiment accessoir)
- Pouvoir gérer et visualiser les boutons dans l'environnement de debug (sans l'annimation bien sur)
- gérer le mode horizontal
- pouvoir ajouter des séparateur & des espaces entre 2 boutons
encore bravo pour cette source vraiment jolie & fonctionnelle.
(Et g aussi trouvé pour le LSet)
En fait on utilise une variable globale pour se passer les infos entre modules
Pour ma part, je préfère (surtout pour un Type ne possédant que 4 attributs) passer par une classe.
on a donc
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
la Classe
cRECT
Public Left As Long
Public Top As Long
Public Right As Long
Public Bottom As Long
et les deux fonctions dans un module
Public Function R_to_cR(ByRef R As RECT, ByRef cR As cRECT)
R.Bottom = cR.Bottom
R.Left = cR.Left
R.Right = cR.Right
R.Top = cR.Top
End Function
Public Function cR_to_R(ByRef cR As cRECT, ByRef R As RECT)
cR.Bottom = R.Bottom
cR.Left = R.Left
cR.Right = R.Right
cR.Top = R.Top
End Function
ainsi, on peut stoquer les données et se les passer entre classes
et lorsqu'on doit travailler avec les API on fait
Dim tmpR as RECT
Call cR_to_R(cR, tmpR)
Call fncAPI(blabla avec tmpR)
Call R_to_cR(tmpR, cR)
perso je trouve cela vraiment plus propre
si vous connaissez une autre méthode je suis a l'écoute
PS: j'ai corrigé le code et maintenant je peu utiliser pls controls
le problème pour avoir plusieurs MenuFirefox le problème ne viens pas du subclassing mais de l'utilisation "publique" de c_ColMenuFox et peut être de mRectCase
J'ai bien réussi a "privatiser" c_ColMenuFox en l'associant à la classe cDrawMenuFox mais je n'y parviens pas pour mRectCase qui est une structure.
J'ai vu l'emploie de "LSet" un peut partout dans le code. Je n'arrive pas a trouver sa signification sur le Net. Je suis presque sur que la solution viendrait de là.
Saurriez vous m'expliquer le "LSet" ?
Vraiment tres bon. (9/10)
Petits bugs :
- la propriété Alligne n'est pas sauvegardée par le composant. Elle se remet à AlignLeft par défaut. (normal ou pas ?)
- impossible d'utiliser plusieur barres de menu (le subclassing ne semble pas savoir rediriger l'évènement. Ajout d'un index unique pourrait-il corriger le problème.
Améliorations envisageables (je travail actuellement dessus)
- Remplacer les cadres rectengulaires par des rectangles arrondis (facil a faire ^^)
- Ajouter une image de fond au menu (+ transparence des boutons dessus)
- Ajouter un mask d'ombre pour les boutons (vraiment accessoir)
- Pouvoir gérer et visualiser les boutons dans l'environnement de debug (sans l'annimation bien sur)
- gérer le mode horizontal
- pouvoir ajouter des séparateur & des espaces entre 2 boutons
encore bravo pour cette source vraiment jolie & fonctionnelle.
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.