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 Sub
Kiitos! 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.