Kts. https://www.ohjelmointiputka.net/koodivinkit/
Onnistuuko sama MITENKÄÄN vb6:lla? =o
Vaikka mikä onnistuu, en nyt ihan tiedä mimmoinen tuo pascaliviritelmä on, mutta tässä on jotain (joka tosin toimii vain jos formilla ei ole mitään kontrolleja jotka voivat saada fokuksen):
Option Explicit
Dim Current As Label
Dim Menu As New Collection
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim lngNewIndex As Long
If KeyCode = vbKeyLeft Then
lngNewIndex = ((Current.Tag + Menu.Count - 2) Mod Menu.Count) + 1
Current.BackColor = vbHighlightText
Current.ForeColor = vbHighlight
Set Current = Menu(lngNewIndex)
Current.BackColor = vbHighlight
Current.ForeColor = vbHighlightText
ElseIf KeyCode = vbKeyRight Then
lngNewIndex = (Current.Tag Mod Menu.Count) + 1
Current.BackColor = vbHighlightText
Current.ForeColor = vbHighlight
Set Current = Menu(lngNewIndex)
Current.BackColor = vbHighlight
Current.ForeColor = vbHighlightText
End If
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
KeyAscii = 0
MsgBox "Nykyinen valinta on " & Current.Tag
End If
End Sub
Private Sub Form_Load()
Dim lngA As Long
For lngA = 0 To 4
Menu.Add Me.Controls.Add("VB.Label", "Menu" & Menu.Count + 1)
With Menu(Menu.Count)
.AutoSize = True
.Caption = vbNewLine & Space$(5) & "Valikko " & Menu.Count & Space$(5) & vbNewLine
.BackColor = vbHighlightText
.ForeColor = vbHighlight
.Move 150 + .Width * lngA, 150
.Tag = Menu.Count
.Visible = True
End With
Next lngA
Set Current = Menu(1)
Current.BackColor = vbHighlight
Current.ForeColor = vbHighlightText
End SubKiitos! Vielä kun saisi sen valikon siis 1 on ylhäällä ja vitonen alhaalla.. Ja kun painaa alaspäin, se menee alempaan, ja kun oikeaa nuolinäppäintä sen teksti muuttuu vaikka siniseksi tms.. Jos viitsit tehdä, kiitos. Joojoo ei mitää sotaa nyt, kunhan kysyin..;D
No vaihtaminen vbKeyLeftin ja vbKeyRightin osalta ei pitäisi olla vaikea toimenpide, samoin kuin ei myöskään Moven muuttaminen. Kokeile :)
Merri kirjoitti:
Kokeile :)
Tämä on semmoinen asia, jota suosittelisin muillekin. Minulle ainakin ohjelmointi on melkoisesti kokeilemista, jos asia on uusi. Tietysti jos ei tiedä mistä lähteä liikkeelle, voi kysyä muilta neuvoa. Mutta soveltamalla esimerkkejä, omaa tietoutta, päättelyä - näin päästään jo aika pitkälle.
Mitä tulee Jaken pyyntöön, niin:
-VbKeyUp/-Down -härpättimet vaihdat Merrin mainitsemien VbKeyLeftiin ja Rightiin.
-Luo kontrollit aina toisten alle: käytä komponentin top-omituisuutta ja heightiä hyväksesi. Esimerkiksi: menu(index).top = menu(index-1).top + 32
-Ja jotta väri muuttuisi esimerkiksi siniseen: menu(index).backcolor = rgb(0, 0, 255)
Tuo tietysti pitää tehdä ehdon sisälle. Mutta toivottavasti tämä hieman valotti asioita. Suoraa koodia en tahtoisi antaa, koska minusta saat enemmän koodaamisesta irti, jos olet itse rakentanut koodin. :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.