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

Passer en parametre un groupe de controle

3 réponses
Avatar
xx
Bonjour

Je souhaite passer en parametre un groupe de controles (les sous-menus d'un menu, en l'occurence).

Est ce possible?
Quelle est la syntaxe (appelant / routine appelee)

J'ai essaye un peu tout et n'importe quoi, et je me fais jeter a la compile ou a l'exec...

Merci


__________________________________________
(Je cherche a mettre dans un module .bas a part ce qu'il faut pour charger un sous-menu de maniere dynamique)

3 réponses

Avatar
Olivier Besson
Depuis le Form source, dans le Load par exemple
Call ChargeMenus(Me)

Dans ton .bas
Public Sub ChargeMenus(Byref f as Form)
Load f.mnuTest(1) ' pour charge le mnuTest d'index 1

End Sub
--

Olivier Besson
Pour m'ecrire, remplacer le <xx >de mon adresse par <com>.
(Je ne lis pas mes mails frequement)
To write me, replace <xx> part of my address by <com> (i don't read my mails
very frequently).



"xx" a écrit dans le message de news:

Bonjour

Je souhaite passer en parametre un groupe de controles (les sous-menus


d'un menu, en l'occurence).

Est ce possible?
Quelle est la syntaxe (appelant / routine appelee)

J'ai essaye un peu tout et n'importe quoi, et je me fais jeter a la


compile ou a l'exec...

Merci


__________________________________________
(Je cherche a mettre dans un module .bas a part ce qu'il faut pour charger


un sous-menu de maniere dynamique)




Avatar
xx
"Olivier Besson" a écrit dans le message de news:
Depuis le Form source, dans le Load par exemple
Call ChargeMenus(Me)

Dans ton .bas
Public Sub ChargeMenus(Byref f as Form)
Load f.mnuTest(1) ' pour charge le mnuTest d'index 1



J'aimerais precisement passer "mnuTest" en parametre.
Meme si,
avec mes conventions d'ecriture, il s'appellera toujours "mnusPlugins"

La declaration ci-dessous ne fonctionne pas:
Public Sub LoaMnuPlugins(myForm As Form, myMnuPlugins() As Menu, myMnuPluginsPos As Integer, myPluginsPath As String)

En tous cas je ne trouve pas l'appel qui va avec...


"xx" a écrit dans le message de news:

> Bonjour
>
> Je souhaite passer en parametre un groupe de controles (les sous-menus
d'un menu, en l'occurence).
>
> Est ce possible?
> Quelle est la syntaxe (appelant / routine appelee)
>
> J'ai essaye un peu tout et n'importe quoi, et je me fais jeter a la
compile ou a l'exec...
>
> Merci
>
>
> __________________________________________
> (Je cherche a mettre dans un module .bas a part ce qu'il faut pour charger
un sous-menu de maniere dynamique)
>
>




Avatar
xx
"xx" a écrit dans le message de news:
"Olivier Besson" a écrit dans le message de news:
> Depuis le Form source, dans le Load par exemple
> Call ChargeMenus(Me)
>
> Dans ton .bas
> Public Sub ChargeMenus(Byref f as Form)
> Load f.mnuTest(1) ' pour charge le mnuTest d'index 1

J'aimerais precisement passer "mnuTest" en parametre.
Meme si,
avec mes conventions d'ecriture, il s'appellera toujours "mnusPlugins"

La declaration ci-dessous ne fonctionne pas:
Public Sub LoaMnuPlugins(myForm As Form, myMnuPlugins() As Menu, myMnuPluginsPos As Integer, myPluginsPath As String)

En tous cas je ne trouve pas l'appel qui va avec...



OK, je suis une mule, je cherchais un truc complique alors que c'etait simple: 'As Object' GRRRR

L'appel pour charger le menu dynamique s'ecrit e.g.:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LoaMnuPlugins Me, mnusPlugins, 3, App.Path & "Plugins"
mnusPlugins(0).Visible = False
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Mon .bas s'ecrit:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Option Explicit
Option Compare Text
'############################################################################################
Public Sub LoaMnuPlugins(myForm As Form, myMnuPlugins As Object, myMnuPluginsPos As Integer, myPluginsPath As String)
Dim r As Long
Dim lpFileName As String
Dim hFindFile As Long
Dim lpFindFileData As WIN32_FIND_DATA
Dim CCC As Integer
Dim sWWW As String
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lpFileName = myPluginsPath & "*.*"
hFindFile = FindFirstFile(lpFileName, lpFindFileData)
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Looping:
sWWW = RTrimNull(lpFindFileData.cFileName)
If (sWWW <> "." And sWWW <> ".." And sWWW <> "") Then
CCC = myMnuPlugins.Count
Load myMnuPlugins(CCC)
myMnuPlugins(CCC).Caption = sWWW
DecorateMenuByPath myForm, Array(myMnuPluginsPos, CCC), myPluginsPath & "" & sWWW
End If
r = FindNextFile(hFindFile, lpFindFileData)
If (r <> 0) Then GoTo Looping
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
End Sub
'############################################################################################
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~