Permalänk
Medlem

VB6 fråga!

Tjena!

Jag fick en förfrågan om jag kan göra ett enkelt ltet program så jag letade fram min gammla vb6 och började förstå mig på den igen......
...men jag har glömt en del märker jag

Finns det nån där ute som fortfarande knåpar lite med vb6???

Jag har en lista (listbox) som heter list1 och så har jag en knapp (command1) och en label (label1)
när jag trycker på command1 så vill jag att första raden i list1 skall visas i label1... så långt inga problem... men nästa gång jag trycker på command1 så vill jag att nästa rad i list1 skall visas i label1 osv.... här får jag inte ihop det... finns det något enkelt sätt???
när vi ändå har börjat så lägger vi till en command2 som man kan hoppa tillbaka ett steg i list1... hur gör man detta...

Tacksam för svar
Bösen

Permalänk
Medlem

Re: VB6 fråga!

Det här kanske är OK?

Public iListCounter As Integer Private Sub Command1_Click() iListCounter = iListCounter + 1 If iListCounter > List1.ListCount - 1 Then iListCounter = List1.ListCount - 1 End If List1.ListIndex = iListCounter List1.Refresh Label1.Caption = List1.Text End Sub Private Sub Command2_Click() iListCounter = iListCounter - 1 If iListCounter < 0 Then iListCounter = 0 End If List1.ListIndex = iListCounter List1.Refresh Label1.Caption = List1.Text End Sub Private Sub Form_Load() Dim Entry, i iListCounter = -1 For i = 1 To 5 Entry = "Data " & i List1.AddItem Entry, i - 1 Next i End Sub

Visa signatur

jacko

Permalänk
Medlem

Tack så hemskt mycket!!!
Funkar perfekt!

Nu till nästa problem!

Istället för att trycka på command1 med musen så vill jag trycka på [spacebar] och till command2 vill jag använda [backspace].

Permalänk
Medlem

Ursäkta att jag frågar, men finns det någon poäng med att lära sig VB6 nu, 11 år efter att det släppts?

EDIT> Ursäkta, 10 år var det Dessutom har Microsoft slutat stödja det sedan mars i år...

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Bosen
Tack så hemskt mycket!!!
Funkar perfekt!

Nu till nästa problem!

Istället för att trycka på command1 med musen så vill jag trycka på [spacebar] och till command2 vill jag använda [backspace].

Det här fungerar så länge man ser till att List1 har focus hela tiden.

I egenskaper för knapparna Command1 och Command2 kan sättas Visible = False om man vill gömma dem.

Public iListCounter As Integer Private Sub Command1_Click() iListCounter = iListCounter + 1 If iListCounter > List1.ListCount - 1 Then iListCounter = List1.ListCount - 1 End If List1.ListIndex = iListCounter List1.Refresh Label1.Caption = List1.Text List1.SetFocus ' Nytt End Sub Private Sub Command2_Click() iListCounter = iListCounter - 1 If iListCounter < 0 Then iListCounter = 0 End If List1.ListIndex = iListCounter List1.Refresh Label1.Caption = List1.Text List1.SetFocus ' Nytt End Sub End Sub Private Sub Form_Load() Dim Entry, i iListCounter = -1 For i = 1 To 5 Entry = "Data " & i List1.AddItem Entry, i - 1 Next i End Sub Private Sub Form_GotFocus() ' Nytt List1.SetFocus End Sub Private Sub List1_KeyUp(KeyCode As Integer, Shift As Integer) ' Nytt Select Case KeyCode Case 32 Call Command1_Click Case 8 Call Command2_Click End Select End Sub

azoapes

Första inlägget:

Citat:

Tjena!

Jag fick en förfrågan om jag kan göra ett enkelt ltet program så jag letade fram min gammla vb6 och började förstå mig på den igen......
...men jag har glömt en del märker jag

Finns det nån där ute som fortfarande knåpar lite med vb6???

Visa signatur

jacko

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av jacko
azoapes

Första inlägget:

Ja... och? Förfrågan måste ju komma ifrån någon. Dessutom är det en väldigt basic grej som efterfrågades.

Permalänk
Medlem

Förfrågan kom från min far, och eftersom jag inte programmerar i vanliga fall utan bara skrapade fram mina gammla saker för att göra detta program så blir det lite svårt att komma igång igen. Knappast att jag ger mig på att lära mig assembler (ja jag vet, jag tog i lite ) eller nåt för ett ynka enkelt program när jag knappt har ens tid för att knåpa ihop detta... vänta du och kolla hur mycket tid du har att lära dig ett nytt programmeringsspråk när du har två ungar, hus och heltidsjobb!!!

Om nu min fråga va ganska basic... varför försökte du inte svara istället för för att klaga på att jag försökte få ihop nåt i vb????
Sådana inlägg som du skriver azoapes tillför inget i min tråd och heller inte i någon annans så fundera lite innan du skriver!!!!!!

jacko:
Tack, jag ska försöka kolla på din kod imorgon, det verkar som om det skulle kunna funka som jag vill!!

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av Bosen
Om nu min fråga va ganska basic... varför försökte du inte svara istället för för att klaga på att jag försökte få ihop nåt i vb????
Sådana inlägg som du skriver azoapes tillför inget i min tråd och heller inte i någon annans så fundera lite innan du skriver!!!!!!

Vem är det som klagar nu då? Det skulle kunna vara så att azoapes inte försökte håna dig utan faktiskt försökte tipsa om att även språk som visual basic har utvecklats en del sedan version 6. Man kan till exempel gratis ladda ned visual basic 2008 express från microsoft.com. Det skiljer sig förvisso på många sätt från vb6, men erbjuder å andra sidan en betydligt modernare miljö.

Permalänk
Medlem

Jag tänkte bara inflika och tipsa om egenskapen Form.KeyPreview. Om du sätter den till True så kommer alla knapptryck till alla ditt fönsters kontroller att först generera en event i fönstret. Efter det är allt du behöver göra att lägga till koden nedan. Inget krux med att sätta fokus lite här och var alltså.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeySpace Call Command1_Click Case vbKeyBack Call Command2_Click End Select End Sub

Permalänk
Hedersmedlem

Jag vill också minnas att man kan använda x=list1.list(n) istället för list1.listindex = n och x=list1.text.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Didonk
Jag tänkte bara inflika och tipsa om egenskapen Form.KeyPreview. Om du sätter den till True så kommer alla knapptryck till alla ditt fönsters kontroller att först generera en event i fönstret. Efter det är allt du behöver göra att lägga till koden nedan. Inget krux med att sätta fokus lite här och var alltså.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeySpace Call Command1_Click Case vbKeyBack Call Command2_Click End Select End Sub

Ja, det här är den optimala lösningen på uppgiften.

Mitt förslag var mer en nödlösning - hade glömt bort KeyPreview-grejen, vilket innebär att jag är tydligen lite ringrostig på VB6.

Visa signatur

jacko

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Bosen
Förfrågan kom från min far, och eftersom jag inte programmerar i vanliga fall utan bara skrapade fram mina gammla saker för att göra detta program så blir det lite svårt att komma igång igen. Knappast att jag ger mig på att lära mig assembler (ja jag vet, jag tog i lite ) eller nåt för ett ynka enkelt program när jag knappt har ens tid för att knåpa ihop detta... vänta du och kolla hur mycket tid du har att lära dig ett nytt programmeringsspråk när du har två ungar, hus och heltidsjobb!!!

Om nu min fråga va ganska basic... varför försökte du inte svara istället för för att klaga på att jag försökte få ihop nåt i vb????
Sådana inlägg som du skriver azoapes tillför inget i min tråd och heller inte i någon annans så fundera lite innan du skriver!!!!!!

Ojdå, du hade ju inte ens behövt försvara dig... det är inte alla som viger sitt liv åt programmering, det vet väl vi som rör oss på det här forumet. Men det tar inte bort det faktum att frågan berörde grundläggande funktionalitet, vilket jag inte sa till dig som ett hån, utan till jacko som ett argument.

Poängen med mitt första inlägg var att få fram en diskussion så att jag kanske kunde tipsa om att använda en annan teknik istället för VB6, eftersom det nu är så hiskeligt gammalt och inte stödjs längre. Som Elgot föreslår kan man gratis ladda ned betydligt modernare miljöer som numera är mycket enklare än VB6 att använda när man privat skapar enklare Windowsapplikationer. Om du lägger ned några timmar på detta nu och sedan upptäcker att det inte kan köras i Vista eller Windows 7 kan du bli ganska irriterad, och det tänkte jag försöka låta dig slippa. Dessutom ökar möjligheterna, det blir lättare att bygga ut din applikation och att använda moderna tekniker.

Anledningen till att jag inte direkt föreslog att använda en annan teknik var att man ibland måste använda ett språk för att man vill återanvända moduler skrivna i detta, t.ex. VB6.

Permalänk
Medlem

ok... förlåt att jag tog åt mig lite......
jag va lite trött och blir lite irriterad ibland på att jag får svar på helt andra frågor jag ställer på olika forum!