Ayuda con función e índice de menús (incluye código fuente)
Publicado por Sahid Ra Gutierrez Cruz (194 intervenciones) el 13/03/2021 10:59:50
Anexo al final del mensaje el código fuente del FORM (para no transcribir los menús)
y abajo anexo el contenido del formulario para su análisis, copiar y pegar en e FORM)
Saludos tengo la siguiente duda, espero me puedan ayudar de antemano gracias.
En el editor de menús cree la siguiente estructura
1
2
3
4
5
Numeros (mNumeros)
...Primer rango (mRango1)
......Rango1 (mR1 índice 0)'Este menú con índice es con el que trabajaremos
...Segundo rango (mRango2)
......Rango2 (mR2 índice 0)'Este menú con índice es con el que trabajaremos
Aquí el código para copiar y pegar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Explicit
Private Sub Form_Load()
Dim Rango1 As String
Dim Rango2 As String
Rango1 = "0,1,2,3,4," 'Asigno el rango uno
Rango2 = "5,6,7,8,9,"
Do While Rango1 <> "" 'Repito el rango uno mientras contenga elementos
mR1(mR1.Count - 1).Caption = Mid(Rango1, 1, InStr(Rango1, ",") - 1) 'Asigno el primer elemento del rango
Rango1 = Mid(Rango1, InStr(Rango1, ",") + 1) 'Elimino el primer elemento del rango
Load mR1(mR1.Count) 'Creo un nuevo elemento del menú
Loop: Unload mR1(mR1.Count - 1) 'Elimino el ultimo elemento del menú
Do While Rango2 <> ""
mR2(mR2.Count - 1).Caption = Mid(Rango2, 1, InStr(Rango2, ",") - 1)
Rango2 = Mid(Rango2, InStr(Rango2, ",") + 1)
Load mR2(mR2.Count)
Loop: Unload mR2(mR2.Count - 1)
End Sub
Hice lo siguiente pero me manda un error "Run-time error 13 (en la linea 13)" que me
recomiendan para solventarlo: En la designación de parámetros para el menú es
brinca el problema.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Explicit
Public Function AsignaRangos(arRango As String, arR As Menu)
If Left(arRango, 1) <> "," Then arRango = arRango + ","
Do While arRango <> ""
arR(arR.Count - 1).Caption = Mid(arRango, 1, InStr(arRango, ",") - 1)
arRango = Mid(arRango, InStr(arRango, ",") + 1)
Load arR(arR.Count)
Loop: Unload arR(arR.Count - 1)
End Function
Private Sub Form_Load()
Dim Rango1 As String: Rango1 = "0,1,2,3,4,"
Dim Rango2 As String: Rango2 = "5,6,7,8,9,"
AsignaRangos Rango1, mR1
AsignaRangos Rango2, mR2
End Sub
CODIGO FUNTE DEL FORM (Rangos.frm)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 3750
ClientLeft = 225
ClientTop = 870
ClientWidth = 5175
LinkTopic = "Form1"
ScaleHeight = 3750
ScaleWidth = 5175
StartUpPosition = 3 'Windows Default
Begin VB.Menu mNumeros
Caption = "Numeros"
Begin VB.Menu mRango1
Caption = "Primer rango"
Begin VB.Menu mR1
Caption = "Rango1"
Index = 0
End
End
Begin VB.Menu mRango2
Caption = "Segundo rango"
Begin VB.Menu mR2
Caption = "Rango2"
Index = 0
End
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Tengan felices líneas de programación.
Valora esta pregunta


0