DevN Skrevet 2. mars 2004 Del Skrevet 2. mars 2004 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. Håper noen forsto dette. Lenke til kommentar
aadnk Skrevet 2. mars 2004 Del Skrevet 2. mars 2004 (endret) 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 2. mars 2004 av aadnk Lenke til kommentar
DevN Skrevet 5. mars 2004 Forfatter Del Skrevet 5. mars 2004 Ooops, glemte av denne tråden. 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
aadnk Skrevet 5. mars 2004 Del Skrevet 5. mars 2004 (endret) Prøv denne koden istedenfor: If List1.ListIndex < 0 Then MsgBox "Ingen elemeter er markert", vbCritical, "Feil" Else List1.RemoveItem List1.ListIndex End If EDIT: Skriveleif Endret 5. mars 2004 av aadnk Lenke til kommentar
DevN Skrevet 5. mars 2004 Forfatter Del Skrevet 5. mars 2004 (endret) 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 5. mars 2004 av zalo Lenke til kommentar
aadnk Skrevet 5. mars 2004 Del Skrevet 5. mars 2004 Beklager, det hadde sneket seg inn en liten skriveleif. Jeg skrev > istedenfor <. Lenke til kommentar
DevN Skrevet 5. mars 2004 Forfatter Del Skrevet 5. mars 2004 Beklager, det hadde sneket seg inn en liten skriveleif. Jeg skrev > istedenfor <. Nei, så lett slipper du ikke unna. Du hadde skrevet '>='. Ok, nå funker det, tusen takk. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå