Gå til innhold

List1: SaveSetting og GetSetting


Anbefalte innlegg

Er det mulig å bruke SaveSetting og GetSetting på en Listbox for å lagre og laste alle itemene? Kan ikke bare skrive inn hvert item som skal lagres vha SaveSetting, siden det skal være mulig å legge til og fjerne i ettertid fra listen!

 

Vil bruke samme funksjon som jeg bruker på tekstbokser, se eksemplene under for Text1.

 

 

SaveSetting

SaveSetting "SaveSettingExample", _

"AutoSaveSettings", "Navn" + Text1.Text, _

Text1.Text

 

GetSetting

Text1.Text = GetSetting("SaveSettingExample", _

"AutoSaveSettings", "Navn" + Text1.Text, _

Text1.Text)

 

Hmmm, forklart så simpelt som jeg bare klarer. :yes:

Håper noen forsto dette.

Lenke til kommentar
Videoannonse
Annonse

Lim inn disse metodene i formen eller i en modul:

 

Public Sub SaveListBox(AppName As String, Section As String, Key As String, ListBox As ListBox)

Dim A&, Tmp$, Cnt&

Cnt = ListBox.ListCount - 1

For A = 0 To Cnt
Tmp = Tmp & ListBox.List(A) & IIf(A <> Cnt, Chr$(0), "")
Next

SaveSetting AppName, Section, Key, Tmp

End Sub

Public Function GetListBox(AppName As String, Section As String, Key As String, ListBox As ListBox) As Long

Dim A&, Arr, Tmp$

Tmp = GetSetting(AppName, Section, Key, "")
If Tmp = "" Then GetListBox = -1: Exit Function

ListBox.Clear
Arr = Split(Tmp, Chr(0))

For A = LBound(Arr) To UBound(Arr)
ListBox.AddItem Arr(A)
Next

GetListBox = ListBox.ListCount

End Function

 

Bruken er veldig enkel og linkner veldig på GetSetting og SaveSetting. Derfor trenger jeg ikke gå inn i detaljer, annet enn å legge til et eksempel:

 

SaveListBox "Test", "All", "List1", List1
GetListBox "Test", "All", "List1", List1

 

GetListBox returnerer -1 hvis key-en ikke eksisterer eller ikke har noen items lagret. Ellers returneres det antall items i listboxen.

 

Koden virker imidlertid bare for VB6, da funksjonen Split ikke finnes i tidligere versjoner. Si ifra hvis du har problemer med dette.

Endret av aadnk
Lenke til kommentar

Ooops, glemte av denne tråden. :D

 

Ok, slet litt med den... Men ser ut til at den funket til slutt...

Men... Er et problem.

 

Når jeg merker et item og sletter det, så slettes det første itemet alltid. Dette skjedde etter jeg la inn koden.

På slette knappen tror jeg at jeg brukte noe som dette:

If List1.Text = "" Then
MsgBox "blabla", , "blabla"
Else
List1.RemoveItem (Selected)
End If

Lenke til kommentar

Hmmm, med den koden sletter den ikke, men viser meldingen hver eneste gang jeg trykker, uansett om et 'element' er valgt. :(

 

Løsning?

 

EDIT: Fjerner jeg den der '>' så virker det å slette, men er ingen markert får jeg "invalid prosedyre" elns. Trykker debug og følgende linje blir markert:

List1.RemoveItem List1.ListIndex

Endret av zalo
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...