01. april 2006 - 15:08Der er
11 kommentarer og 1 løsning
ændring af menupunters "caption"?
Hej Eksperter
Jeg har (endnu) et problem, som jeg håber i kan løse for mig :)
Når jeg har brugt den indbyggede menueditor i visual studio(VB6) til at lave nogle menupunkter, hvordan kan jeg så i runtime ændre disse?
Jeg har f.eks. et menupunkt kaldet lang(det er name) med caption language(i menueditoren). Når man klikker på denne har man mulighed for at vælge sproget dansk, og så skal der jo ikke længere stå "language" men "sprog" som caption på menupunktet :) Resten af mit program er lavet så det kan oversætte men lige præcis menupunkterne vil ikke(der findes ingen .caption til lang)
Det drejer sig præcist om: Files(index 0, name "Files") Language(index 1, name "Lang")
Håber i kan fortælle mig hvordan deres caption ændres runtime :)
Private Sub cmdDansk_Click() Dim arrLanguage(0 To 3) As String arrLanguage(0) = "Filer" arrLanguage(1) = "Åbn" arrLanguage(2) = "Gem" Call UpdateLanguage(arrLanguage) End Sub
Private Sub cmdEnglish_Click() Dim arrLanguage(0 To 3) As String arrLanguage(0) = "File" arrLanguage(1) = "Open" arrLanguage(2) = "Save" Call UpdateLanguage(arrLanguage) End Sub
Private Sub Form_Load() ' mnuFile (File) ' ...mnuOpen (Open) ' ...mnuSave (Save) End Sub
Private Sub UpdateLanguage(arrLanguage() As String) Dim objControl As Object For Each objControl In Controls If TypeOf objControl Is Menu Then With objControl Select Case LCase$(.Name) Case "mnufile" .Caption = arrLanguage(0) Case "mnuopen" .Caption = arrLanguage(1) Case "mnusave" .Caption = arrLanguage(2) End Select End With End If Next End Sub ' ----------------------------------- Form1 -----------------------------------
Private Sub cmdDansk_Click() arrLanguage(0) = "Filer" arrLanguage(1) = "Åbn" arrLanguage(2) = "Gem" Call UpdateLanguage End Sub
Private Sub cmdEnglish_Click() arrLanguage(0) = "File" arrLanguage(1) = "Open" arrLanguage(2) = "Save" Call UpdateLanguage End Sub
Private Sub Form_Load() ' mnuFile (File) ' ...mnuOpen (Open) ' ...mnuSave (Save) End Sub
Private Sub UpdateLanguage() Dim objControl As Object For Each objControl In Controls If TypeOf objControl Is Menu Then With objControl Select Case LCase$(.Name) Case "mnufile" .Caption = arrLanguage(0) Case "mnuopen" .Caption = arrLanguage(1) Case "mnusave" .Caption = arrLanguage(2) End Select End With End If Next End Sub ' ----------------------------------- Form1 -----------------------------------
' BuildLanguage() skal du kun bruge til at finde menuer og text ' så kan du gemme det i en file.. txtLanguage.Text = BuildLanguage Call UpdateLanguage(txtLanguage.Text) End Sub
Private Sub UpdateLanguage(strLanguage As String) Dim i As Integer Dim arrTemp() As String Dim arrLine() As String Dim arrMenu() As String Dim arrCaption() As String Dim objControl As Object
arrLine = Split(strLanguage, vbCrLf)
ReDim arrMenu(UBound(arrLine)) As String ReDim arrCaption(UBound(arrLine)) As String
For i = 0 To UBound(arrLine) If InStr(arrLine(i), "=") Then arrTemp = Split(arrLine(i), "=") arrMenu(i) = LCase$(Trim$(arrTemp(0))) arrCaption(i) = Trim$(arrTemp(1)) End If Next
For Each objControl In Controls If TypeOf objControl Is Menu Then With objControl For i = 0 To UBound(arrMenu) If arrMenu(i) = LCase$(.Name) Then .Caption = arrCaption(i) Exit For End If Next End With End If Next End Sub
Private Function BuildLanguage() As String Dim objControl As Object Dim strLanguage As String For Each objControl In Controls If TypeOf objControl Is Menu Then With objControl strLanguage = (strLanguage & .Name & "=" & .Caption) & vbCrLf End With End If Next BuildLanguage = strLanguage End Function ' ----------------------------------- Form1 -----------------------------------
kigger lige på det i morgen eller i overmorgen, har været til svendegilde i går aftes så må indrømme at jeg ikke magter ret meget, er lige kommet ind af døren og er ved at falde i søvn ved computeren :)
blueeue97> Lang.Caption = tmp(1) giver en fejl(object or method not found) men jeg ved at object Lang findes(den giver mig mulighederne Item, LBound, UBound og count når jeg skriver lang. - hvilket indikerer at objektet findes)
Det virker da fint hos mig når jeg bare skriver slut.caption ="noget andet"
:o))
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.