Gå til innhold

Hvordan lage dette i Visual Basic 6.0?


Anbefalte innlegg

Skal lage et program i Visual Basic, men er usikker på hvordan. Er ganske ny innen emnet....

 

- Jeg skal ha en ListBox med flere forskjellige ord.

- Jeg skal ha en TextBox der det står forklaringen på ordet som står i ListBox.

Det betyr at visst jeg velger et ord fra ListBox så skal en forklaring på ordet komme opp i TextBoxen.

Det jeg i tillegg skal ha er mulighet for å legge inn nye ord og forklaringer.

Og jeg må også kunne slette og redigere ord og forklaringer.

Alt dette må lagres slik at det er der neste gang programmet startes.

 

eks:

 

ord: william shakespear

forklaring: kjent britisk forfatter

 

håper noen kan hjelpe meg med dette?

Lenke til kommentar
Videoannonse
Annonse

Ja, jeg kan hjelpe deg med dette!

 

Første du gjør er å lage et par variabler. Vi legger alle ord og forklaringer inn dit:

'Variablene som holder styr på ordlisten din
   Private Type Ord
       Ord As String
       Forklaring As String
   End Type
Dim Ord() As Ord

Jeg regner med at du vil laste inn ordene med en gang programmet starter, så du kan opprette en Form_Load()-event:

Private Sub Form_Load()

End Sub

Alt som står mellom de to linjene vil bli utført når programmet startes.

 

Når vi har en ukjent størelse på et array bruker vi Ubound() til å finne størelsen. Det funker ikke hvis ikke arrayet er "dimensjonert". Denne koden før vi åpner filen:

'Vi må gjøre arrayet klart
ReDim Preserve Ord(0 To 0)

I koden bruker vi et par variabler. Det er lurt å dimme de. (Skriv "Option Explicit" øverst i koden) Vi deklarerer og åpner filen:

'Deklarasjoner
Dim Buff As String, SplitBuff

'Åpner filen
Open App.Path & "\ordliste.txt" For Input As #1

'Lukker filen
Close #1

Når filen er åpnet må man lage en Loop som går gjennom alle linjene i filen:

    Do Until EOF(1) ' EOF er TRUE når VB har nådd enden av fila
       
   Loop

Så kan linjen hentes og settes inn i ordlisten din:

        'Henter linjen
       Line Input #1, Buff
       
       'Splitter linjen, slik at vi kan hente ut Ord og Forklaring
       SplitBuff = Split(Buff, "|")
       
       'Øker størelsen på arrayet med 1
       ReDim Preserve Ord(0 To UBound(Ord) + 1)
       
       'Setter verdier
       Ord(UBound(Ord)).Ord = SplitBuff(0)
       Ord(UBound(Ord)).Forklaring = SplitBuff(1)
       
       'Og legger til ordet i listen
       List1.AddItem SplitBuff(0)

For å legge til i ordlisten må filen først åpnes:

'Åpner filen
Open App.Path & "\ordliste.txt" For Append As #1

'Lukker filen
Close #1

Får å skrive til den:

    'Skriver til filen
   Print #1, Text1.Text & "|" & Replace(Text2.Text, vbNewLine, "vbnewline")

Da er ordet skrevet til filen, men man vil jo slippe å restarte programmet. Legge til ordet i arrayet:

'Øker størelsen på arrayet med 1
ReDim Preserve Ord(0 To UBound(Ord) + 1)

'Setter verdier
Ord(UBound(Ord)).Ord = Text1.Text
Ord(UBound(Ord)).Forklaring = Replace(Text2.Text, vbNewLine, "vbnewline")

List1.AddItem Text1.Text

 

Får å vise ordforklaring kan du gjøre slik:

Private Sub List1_dblClick()

'Viser ordforklaring
MsgBox Replace(Ord(List1.ListIndex + 1).Forklaring, "vbNewLine", vbNewLine)

End Sub

 

Spør hvis det er noe :)

 

Edit: Syntax på ordlisten blir slik:

Jonas|Meg!!!11enen

VB|Dette programmet er programmert i VB

1227|Nesten det samme som 1337/leet

Arne|Ropes mye på lan.vbNewLineNy linje

Lambertseter|Her bor jeg!

Endret av Jonas
Lenke til kommentar
  • 2 uker senere...

Takk for at du tar deg tid til å hjelpe meg, har faktisk fått til en del ting som jeg slet med før. Det var ikke meningen at du skulle skrive hele programmet for meg, jeg har da litt samvittigheten i behold enda... :innocent:

Men jeg har funne ut at det er lettere å forstå visst jeg har et helt program, og så kan se hva de enkelte kodene gjør. Men tilbake til det programmet jeg holder på med. Det er en del ting som ikke er slik som jeg vil ha det.

 

Jeg vil ha en listbox og en textbox øverst i en frame. Når jeg velger et ord fra listboxen skal forklaringen på ordet komme opp i textboxen. Dette gjelder alle ordene i listboxen. Så skal jeg ha en del Command-buttons, bla. skal jeg ha 'legg til' og 'avslutt' helt nede i framen. Når jeg trykker på 'legg til' vil jeg at det skal komme opp en ny frame med 2 textboxer, der du i den øverste textboxen skriver inn ordet og i den nederste skriver inn forklaringen. og helt nederst en Command-button med 'lagre'. Når jeg trykker på lagre blir dette selvfølgelig lagret og 'legg til'-framen forsvinner.

 

Videre vil jeg ha en meny opp i venstre hjørnet på framen (en sånn som er i alle vindu i windows, feks. 'fil'.). I denne menyen må det være en del valg blandt anna: 'legg til', 'rediger', 'slett', 'om' og avslutt. 'legg til' skal ha samme funskjon som 'legg til'-command-buttonen. 'rediger' må virke slit at når jeg velger et ord i listboxen (at det er uthevet) og går opp i menyen og velger rediger kommer en ny frame opp med to textboxer med ordet i den ene og forklaringen i den andre, slik at jeg kan endre både ord og forklaring. igjen må her være en 'lagre'-button.

'slett' sier seg vel selv, jeg vil ha mulighet til å slette ord fra listbox. Det må fungere sånn at når jeg velger et ord fra listboxen (at det er uthevet) så kan jeg gå opp i menyen og velg 'slett' og da kommer det opp en frame med "vil du slette .....ordet... fra listen" og jeg må ha 2 buttons med 'ja' og 'avbryt'. Vil gjerne ha passord-beskyttelse på dette.

'om' skal inneholde informasjon om programmet, den informasjonen kan godt komme opp i en egen frame med en 'ok'-button.'

'avslutt' er avslutt programmet.

 

Da har jeg vel forklart alt som er. Har sjekka ganske grundig på utenlandske sider for å finne svar/koder på de enkelte oppgaven problemene jeg har med dette programmet. Er i gang men det stopper litt opp når det er enkelte ting som er umulig å få til. Noen ting er ganske enkelt å få til men sliter litt med å forstå dette med lagring, har prøvd ganske mange forslag men ingen passer til meg. Har den tykke boka om visual basic 6.0 programmering men det som står der er litt for generelt. Jeg har til nå brukt ca. 30 timer på dette programmet og nå står jeg veldig fast. Brukte en del av det du foreslo, men kunne ikke bruke alt. Tror jeg har forstått det meste. Jeg må vel berre sette meg litt bedre inn i de enkelte kodene for å finne ut av det. Så jeg tror jeg skal starte fra scratch og prøve igjen. Takk for hjelpen iallefall..... :)

 

 

PS: Alle svar mottas med stooor takk.

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...