Toon posts:

[VB] Listbox naar Listview

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey allemaal,

Ik ben nu bezig met een programma dat via Winsock useraccounts kan gebruiken alleen daar had ik een vroeger project van mij voor gebruikt alleen toen had ik het met een listbox gemaakt.

Nu wil ik echter het met een Listview gaan maken want dan kan ik de twee verschillende texten (Username en Password) onder een verschillende collom opslaan.

Zo zag het er eerst uit:
+---------------------------+
| Username:Password |
+---------------------------+

Nu ziet het er zo uit:
+--------------+---------------+
| Username | Password |
+--------------+---------------+
(Gescheiden door dan twee tabs)

Nu heb ik het volgende script:
Visual Basic:
1
2
3
4
5
6
7
8
9
For i& = 0 To List1.ListCount - 1
  'Check of het overeenkomt
  If List1.List(i) = strUser & ":" & strPass Then
    'Goede Login
    Winsock1(Index).SendData ("00_DISP " & strUser & " logged in successfully at " & Now)
    Winsock1(Index).Tag = "LOGGED IN"
    Exit Sub
  End If
Next i&


Alleen hoe zet ik dit script om naar dus de manier met die tabs ?
Ik zit op dit moment ook zelf even te proberen alleen ik ben nog niet zo ver zodat het een beetje werkt, als ik meer heb dan post ik het ;)

Alvast bedankt,
Erik _/-\o_

[ Voor 10% gewijzigd door Verwijderd op 12-06-2003 14:34 . Reden: Code was een beetje lang :) ]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Wazige vraag ("Alleen hoe zet ik dit script om naar dus de manier met die tabs ?") en volgens mij een scriptrequestje

Tip: in VB is vbTab een tab, dus misschien kun je in plaats van 1 keer & ":" & neer te zetten 2 keer een vbTab neerzetten.. (& vbTab & vbTab &)

[ Voor 46% gewijzigd door OZ-Gump op 12-06-2003 14:39 ]

My personal website


Verwijderd

Topicstarter
Geen script request, ik ken de regels hier ..

Maar ik heb hulp nodig om het om te zetten naar de manier van een Listview (Dus dat je tabs gebruikt ipv een ':' )

Om dingen toe te voegen weet ik wel:
Visual Basic:
1
2
3
4
    With Form1.ListView1
    Set itmx = .ListItems.Add(, , Text1.Text)
        itmx.SubItems(1) = Text2.Text
    End With


Maar alleen het ophalen snap ik niets van :(

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Ow het gaat om het ophalen... Als je het erin schrijft met een tab, zou ik het ook op die manier uitlezen. Ik mis je probleem even... :?

My personal website


Verwijderd

Topicstarter
Ja het ophalen gaat niet goed, dat moet ik weten wil ik verder kunnen ;)

Maar ik heb al een manier gevonden om het te maken alleen zijn er dan nog wat problemen met het ophalen van de info uit de Listview

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Welke info krijg je er nu uit dan, hoe heb je je listview in elkaar zitten...
Ja het ophalen gaat niet goed
Daar kan natuurlijk helemaal niemand iets mee... Wist je niet dat het gebruik van glazen bollen voortaan ten strengste verboden is?

twee keywords: info en debug!

[ Voor 46% gewijzigd door OZ-Gump op 12-06-2003 14:58 ]

My personal website


Verwijderd

Topicstarter
De info die de client stuurd ziet er zo uit: Username:Password

In die van de server staat het zo: Username | Password (Gescheiden door een collom van de Listview)

Dus nu moet ik uit zien te vinden hoe ik dit info van de client met de server kan laten overeen komen ;)

Verwijderd

Topicstarter
Visual Basic:
1
2
3
4
5
6
7
8
9
                Dim Tempstring As String
                For i& = 0 To ListView1.ListItems.Count - 1
                Tempstring = ListView1.ListItems.Item(i) & ":"
                    If Tempstring = strUser & ":" & strPass Then
                        Winsock1(Index).SendData ("00_DISP " & strUser & " logged in successfully at " & Now)
                        Winsock1(Index).Tag = "LOGGED IN"
                        Exit Sub
                    End If
                Next i&


Om deze regel gaat het nu:
Visual Basic:
1
Tempstring = ListView1.ListItems.Item(i) & ":"


Dat heb ik nu alleen nu vind hij alleen de Username uit de eerste collom .. Nu de tweede nog maar hoe moet dat dan ? Iets met de index ofzo ?

[ Voor 14% gewijzigd door Verwijderd op 12-06-2003 15:05 ]


Verwijderd

de 2e colomn in een listview is de child van de 1e, zo moet je et wel kunnen aanpassen denk ik

Verwijderd

Bedoel je dit?

Visual Basic:
1
2
3
4
5
6
7
8
Dim i As Integer
For i = 1 To ListView1.ListItems.Count
    If ListView1.ListItems.Item(i).Text = strUser And _
                  ListView1.ListItems.Item(i).SubItems(1) = strPass Then
        'doe wat je moet doen
         exit For
    End If
Next i


listview bestaat uit listitems waarvan de text-property de eerste kolom is en de 2e en daaropvolgende items
in de 'subitems' staan

ps. hoe krijg je zo'n mooie codewindow???

[ Voor 29% gewijzigd door Verwijderd op 12-06-2003 15:21 ]


Verwijderd

Topicstarter
In de code tag dit te zetten 'code=vb' ..

En thnx ik zal het even proberen ;)

[ Voor 30% gewijzigd door Verwijderd op 12-06-2003 15:12 ]


Verwijderd

Topicstarter
Hey iedereen die heeft geholpen; Thnx!
Het is gelukt, dit heb ik nu:
Visual Basic:
1
2
3
4
5
6
7
8
9
                Dim Tempstring As String
                For i& = 0 To ListView1.ListItems.Count
                Tempstring = ListView1.ListItems.Item(i).Text & ":" & ListView1.ListItems.Item(i).SubItems(1)
                    If Tempstring = strUser & ":" & strPass Then
                        Winsock1(Index).SendData ("00_DISP " & strUser & " logged in successfully at " & Now)
                        Winsock1(Index).Tag = "LOGGED IN"
                        Exit Sub
                    End If
                Next i&


Beetje primitief gedaan maar ik ben nog wel een n00b in sommige dingen :P
Heel erg bedankt ;)

Verwijderd

het is handiger om ListView1.ListItems.Item(i).Text en ListView1.ListItems.Item(i).SubItems(1) rechtsstreeks met strUser en strPass te vergellijken. Minder kans op foutjes.

Probeer je variabelen ook consequent een goeie prefix te geven, bijv. intCounter en strTempstring ofzo.

Het kan ook handig zijn om de te vergelijken stukken tekst met de UCASE of LCASE functies te bewerken tijdens de vergelijking als je perse NIET case-sensitive wil zijn. Dus:

If Ucase(ingevoerdeUsername) = Ucase(opgeslagenUsername) then ....

Verwijderd

Topicstarter
Ik zal het eens proberen maar dat doe ik meestal op het laatste, dan ga ik mijn hele script langs en kijken waar ik het kan optimaliseren ;)
Pagina: 1