Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Listboxit skrollautumaan yhdessä?

Jorgga [23.09.2006 14:43:01]

#

Joo eli teen tässä tällästä pikku ohjelmaa mihin voi laittaa muistiin erinnäisiä juttuja... mutta nyt on ongelma:

kun klikataan listboxia niin sen pitäisi ottaa ylös monesko rivi ja sen perusteella tekstilootiin laittaa tiedot... mutta se ei tee niin...

Olen väsännyt oman purkkani:

Private Sub memoList_Click()

Open "memo.dat" For Input As #4
row = memoList.Text
Debug.Print row
For x = x To 999
Input #4, memox1, memox2, memox3, memox4
Debug.Print memox1
Debug.Print memox3
If row = row Then
memoName.Text = row
memoSet.Text = memox2
memoCome.Text = memox4
memoNotes.Text = memox3
Else
End If
Next
Close #4

End Sub

mutta ottaisin parempia ideoita vastaan (joo toi on niin huono ku olla ja voi :)

Edit: Sainkin jo toimimaan eli ei mitään... mutta parempia ideoita tuon toteuttamiseen olis kiva saada :)

Edit2: Nyt tuli sellanen että on kaks listboxia ja jos toista scrollataan niin toisen pitäisi scrollautua samaan aikaan saman verran. Mahdollista?

kayttaja-4976 [23.09.2006 17:51:08]

#

Jorgga kirjoitti:

Open "memo.dat" For Input As #4

Tuo ei ole .NETiä. Se käyttää streameja, joille on aika omalaatuinen koodi.

Jorgga [23.09.2006 21:02:14]

#

En käytä NETiä vaan VB6 kuten otsikosta käy ilmi

kayttaja-4976 [24.09.2006 13:55:31]

#

Ai sori en huomannut. Debug.Print näytti niin .NETiltä mutta virheistähän sitä oppii.

setä [24.09.2006 19:59:18]

#

Tuo scrollaus ei taida onnistua VB:n omilla ohjaimilla mutta jos teet omat listboxit niin kyllä lähtee.

Antti Laaksonen [24.09.2006 20:15:33]

#

WinAPIn avulla yhtäaikainen skrollaus onnistuu kuin onnistuukin.

Option Explicit

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const LB_GETTOPINDEX = &H18E
Private Const LB_SETTOPINDEX = &H197

Private Sub List1_Scroll()
    Dim kohta As Long
    ' haetaan List1:n kohta
    kohta = SendMessage(List1.hwnd, LB_GETTOPINDEX, 0, 0)
    ' muutetaan List2:n kohta
    SendMessage List2.hwnd, LB_SETTOPINDEX, kohta, 0
End Sub

Nyt List2 liikkuu samaan tahtiin kuin List1 skrollattaessa.

Jorgga [24.09.2006 23:59:05]

#

Hei kiitti paljon :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta