DevN Skrevet 8. februar 2004 Del Skrevet 8. februar 2004 (endret) Får verken til eller forstår hvordan man lagrer utfylt informasjon. F.eks. "Options.frm" har mange forskjellige felter, i rad 1 står det navn (f.eks), og i rad 2 står det adresse (f.eks.). Nederst kan man enten velge "Lagre endringer" eller "Avbryt". Avbryt er greit, den bruker jeg bare "Unload Me" på. Men har ingen anelse om hva jeg skal skrive på "Lagre endringer". Trenger jeg en ny form/e.l. for å lagre endringer? Trenger jeg en separat fil som tar vare på endringene etter den er kompilert? Håper på en GOD forklaring her. Skal søke litt på Google, så sjekke her igjen, så legge meg. Trenger naturligvis kodene også. [EDIT] Off topic, men..: Når jeg f.eks. skriver: Caption = Form2.Text12.text Så gir VB meg error under kompileringen, derfor fullføres den ikke. Hvis jeg lagrer etterpå, så er Caption-koden borte. Det virker selvfølgelig hvis jeg setter " på hver side av Form2.Text12.text. Er det noen annen måte jeg kan få teksten på knappen til å være det som står i Form2 i feltet "Text12"? Endret 9. februar 2004 av zalo Lenke til kommentar
SilverKhan Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 En mulighet må jo være å lage en database der du lagrer all informasjonen fra feltene i... Jeg brukte imidlertid en annen løsning i et program jeg lagde (litt uoffisielt) frilans for Thales. Når brukeren trykker på "lagre" så hentes verdiene fra feltene og lagres i en fil adskilt med vbCrLf. Neste gang programet startes så åpner du filen og kjører den gjennom en parser som går igjennom filen tegn for tegn og lagrer tegnene i en variabel hvis tegnet ikke er "chr(13)" (som er ascii(?) for carriage return). Når den kommer til et tegn som er "chr(13)" så skriver den variabelen til tekstfeltet og tømmer variabelen, (så må den hoppe over et tegn nemlig LineFeed tegnet) og fortsetter å jobbe seg gjennom neste linje på samme måte som den første... Kanskje ikke så godt forklart, men det skal i det minste gå ann å skjønne tankegangen. Jeg kan se om jeg finner noe kode, men jeg vil anbefale deg å prøve å skrive din egen kode... Dette er temmelig basic greier og det tok meg ikke mer en 15-20min å tenke ut og skrive et eksempel som dekket 19-20 felter... Lenke til kommentar
DevN Skrevet 9. februar 2004 Forfatter Del Skrevet 9. februar 2004 Kan jo prøve litt, men er ganske fersk i Visual Basic. Lenke til kommentar
Jonas Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 Du kan ikke bare skrive caption. du må skrive hvilken caption! form1.caption osv.. Eller det viste du sikkert? Lenke til kommentar
DevN Skrevet 9. februar 2004 Forfatter Del Skrevet 9. februar 2004 Er ikke helt sikker på hva du mente nå, dette skrev jeg altså (som det sto i første post: Caption = Form2.Text12.text Det du mente? Det er vel riktig? Lenke til kommentar
svamp Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 Han mente at du må ha noe før Caption. Dvs at du må vise "hvem sin" caption du skal endre. F.eks, som Jonas sier, form1.Caption. Lenke til kommentar
Jonas Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 form1.caption er liksom "navnet" på vinduet i programmet, det som står i hjørne. command1.caption er teksten på en knapp og label1.caption er bare ren tekst i et program. Skjønner? se på den koden her litt: Private Sub Command1_Click() Form1.Caption = Text1.Text End Sub legg til en tekst boks (text1), en form (form1) og en knapp (command1) Lenke til kommentar
DevN Skrevet 9. februar 2004 Forfatter Del Skrevet 9. februar 2004 Øhh kommer tilbake til dere senere. Nå trenger jeg virkelig en pause, flyver VB-koder i hodet mitt og alt blir bare surr... Lenke til kommentar
DevN Skrevet 9. februar 2004 Forfatter Del Skrevet 9. februar 2004 form1.caption er liksom "navnet" på vinduet i programmet, det som står i hjørne. command1.caption er teksten på en knapp og label1.caption er bare ren tekst i et program. Skjønner? se på den koden her litt: Private Sub Command1_Click() Form1.Caption = Text1.Text End Sub legg til en tekst boks (text1), en form (form1) og en knapp (command1) Tok ikke så lang tid før jeg fikk roet ned litt. Så på koden din, fant ut følgende: Man skriver noe i "Text1", trykker på "Command1" og caption på Form1 blir det man har skrevet. Første leksjon fullført. Lenke til kommentar
DevN Skrevet 9. februar 2004 Forfatter Del Skrevet 9. februar 2004 Noe mer? Ganske grei måte det der. Men det forutsetter at jeg TRYKKER på knappen før Caption'en forandres. Noen mulighet for å få den til å autmatisk bytte når man skriver inn teksten i feltet, eller når man trykker "Lagre endringer"? Vanskelig det her. Jobber fortsatt litt med koden for å lagre endringer, men er kanskje en fordel å få det her andre til å funke først. Lenke til kommentar
Jonas Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 (endret) Private Sub Text1_Change() Form1.Caption = Text1.Text End Sub Sånn? Hvis du skal lagre endringer så var noe som het 'freefile' eller noe sånt som jeg ikke helt kan. Eller du kan lagre det i en tekst fil og åpne den Skal finne koden for lagring i tekst fil, to sec Edit: Open "C:\navn.txt" For Output As #1 Print #1, Text1.Text Close #1 for å lagre noe RichTextBox1.LoadFile "C:\navn.txt" Åpne filen. du må legge til RichTextBox: Høyreklikk på den menyen med alle tingene du kan sette inn, components, microsoft RichTextBox controll Endret 9. februar 2004 av jonas22282460 Lenke til kommentar
DevN Skrevet 9. februar 2004 Forfatter Del Skrevet 9. februar 2004 Jonas: Du er en "daysaver". Funker å lagre. Men skjønner ikke helt dette med å loade innstillingene. All teksten og dette skal loades ved start i to vinduer, Form1 og Form2. Form 1 er "main", og Form2 er sånn "Options"-rute. Nå skal Form1 (main) inneholde 8 knapper, hver knapp har sin egen tekst som hentes fra Form2 (som igjen henter fra txt-filen). Hver knapp i Form1 har også sin egen kommando, altså alle skal åpne hvert sitt program. Hvordan får jeg til at hvert tekst-felt skal loade hver sin linje? Siden både Form1 og Form2 skal laste samme informasjonen, hva er best? 1. Form1 loader fra Form2? 2. Form1 loader fra txt-filen? Har det akkurat nå slik at Form1 henter informasjonen fra Form2. Også med det samme jeg er i gang ( ): Hvis noen skriver et bestemt ord kommando-feltet for knappene, så vil jeg ha en bestemt rute opp. Ta dette eksemplet hvis noen kan gi meg en kode: Kommando-feltet: "None" Da skal jeg f.eks. ha "Form4.Show". Og til slutt, som jeg sa før, jeg er ganske så fersk i VB, så beklager. Lenke til kommentar
Jonas Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 (endret) Hvis du ser i denne tråden, så står den hvordan hente ut forskjellige ting fra ver linje. spør hvis det noe Edit: du skal ha opp en ny form hvis du skriver "None" i en tekstboks? If text1.text = "None" then form4.show else msgbox "Feil passord!", ,"Feil" end if eller If text1.text = "None" then form4.show end if Endret 9. februar 2004 av jonas22282460 Lenke til kommentar
DevN Skrevet 9. februar 2004 Forfatter Del Skrevet 9. februar 2004 Hvis du ser i denne tråden, så står den hvordan hente ut forskjellige ting fra ver linje. spør hvis det noe Edit: du skal ha opp en ny form hvis du skriver "None" i en tekstboks? If text1.text = "None" then form4.show else msgbox "Feil passord!", ,"Feil" end if eller If text1.text = "None" then form4.show end if Dim Buff$, Filnavn$ Dim DataArray() As String, Tell& Filnavn = App.Path & "\Data.txt" Open Filnavn For Input As #1 Do Until EOF(1) Line Input #1, Buff ReDim Preserve DataArray(Tell) DataArray(Tell) = Buff Tell = Tell + 1 Loop Close #1 ' Arrayen er loaded inn, last inn dataen: For Tell = LBound(DataArray) To UBound(DataArray) Buff = DataArray(Tell) If Mid(Buff, 1, 1) = "<" Then Select Case LCase(Mid(Buff, 2, InStr(1, Buff, ">") - 2)) Case "navn" Text1.Text = DataArray(Tell + 1) Case "addresse" Text2.Text = DataArray(Tell + 2) End Select End If Next Da må vel hver linje ha en overskrift som f.eks. navn? Hvordan lagrer jeg hver enkel linje under en viss tekst-linje i txt-filen? Kan du gi meg en kode for dette: Text1 <Det som står i Text1> Text2 <Det som står i Text2> Text3 <Det som står i Text3> (Text1, 2 og 3 er "overskriften" over hver linje som skal lagres.) Må ha en kode for å laste de inn også. Uffa meg, blir bare verre og verre dette. Lenke til kommentar
Jonas Skrevet 10. februar 2004 Del Skrevet 10. februar 2004 (endret) Sånn her burde funke tror jeg Private Sub Form_Load() Dim Buff$, Filnavn$ Dim DataArray() As String, Tell& Open App.Path & "data.txt" For Input As #1 Do Until EOF(1) Line Input #1, Buff ReDim Preserve DataArray(Tell) DataArray(Tell) = Buff Tell = Tell + 1 Loop Close #1 ' Arrayen er loaded inn, last inn dataen: For Tell = LBound(DataArray) To UBound(DataArray) Buff = DataArray(Tell) If Mid(Buff, 1, 1) = "<" Then Select Case LCase(Mid(Buff, 2, InStr(1, Buff, ">") - 2)) Case "text1" Text1.Text = DataArray(Tell + 1) Case "text2" Text2.Text = DataArray(Tell + 1) Case "text3" Text3.Text = DataArray(Tell + 1) End Select End If Next End Sub txt fila bør se sånn her ut omtrent: <text1>Jonas <text2> Karlsrud <text3> Oslo Edit: skal finne en kode til å lagre Kode for å lagre. Har ikke testa den ut så si ifra om den ikke funker Private Sub Command1_Click() Open "C:\data.txt" For Output As #1 Print #1, "<text1>" Print #1, Text1.Text Print #1, Print #1, "<text2>" Print #1, Text2.Text Print #1, Print #1, "<text3>" Print #1, Text3.Text Close #1 End Sub Endret 10. februar 2004 av jonas22282460 Lenke til kommentar
DevN Skrevet 10. februar 2004 Forfatter Del Skrevet 10. februar 2004 Får bare en error "File not found" når jeg prøver å åpne Form2, den jeg har koden i (den øverste). Noe jeg gjør feil? Eller noe feil i koden? Har opprettet data.txt. Lenke til kommentar
svamp Skrevet 10. februar 2004 Del Skrevet 10. februar 2004 (endret) Directory for txt-filen er forskjellig i "for input" og "for output".... Edit: men jeg vet ikke om det har noe å si for problemet ditt? Endret 10. februar 2004 av svamp Lenke til kommentar
Jonas Skrevet 10. februar 2004 Del Skrevet 10. februar 2004 (endret) Se på path til fila i koden og sjekk om den stemmer. Edit: legg til en '\' forann data.txt i koden så funker det nok Endret 10. februar 2004 av jonas22282460 Lenke til kommentar
DevN Skrevet 10. februar 2004 Forfatter Del Skrevet 10. februar 2004 Se på path til fila i koden og sjekk om den stemmer. Edit: legg til en '\' forann data.txt i koden så funker det nok Yeah, funker som F nå. Da var det en siste ting, kan jo alltids sette det som en bug, men er litt dumt når jeg har anledningen til å rette det nå. Akkurat nå gir kun knappen "Avbryt" en kommando, nemlig "Unload Me". Jeg jeg trenger den til å resette, sånn at alle endringer som ikke er laget blir nullstilt. For hvis jeg skriver noe i f.eks. Text1 (Form2), så blir knappene som leser fra Text1 om til det jeg har skrevet. De blir først stilt tilbake etter jeg har trykt på knappen. Noen kode for å resette endringer som ikke er lagret? 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å