Avatar billede webwally Nybegynder
02. november 2002 - 21:52 Der er 13 kommentarer og
2 løsninger

Et par nemme Visual Basic spørgsmål...

Lige et par nemme VB-spørgsmål:

1) Jeg har en tekst-box. Men jeg skal bruge koden til at gemme derfra, og åbne fra en fil.

2) Hvordan gør jeg sådan, at når man trykker på F9 så skal den åbne en ny form2?

I får selvfølgelig point selvom I kun kan svare på ét af spørgsmålene :-)
Avatar billede chris2k Nybegynder
02. november 2002 - 22:06 #1
1)

For at spare tid kan du bruge FileSystemObject (får du med Internet Explorer):

Du skal klikke på menuen Project -> References. Her skal du finde "Microsoft Scripting Runtime" (ca. midt i listen). Marker det lille kryds, og klik OK.

Tilføj en knap, og gå ind i koden. Skriv for at læse fra den:

Dim objFSO As New FileSystemObject
    Dim objTXT As TextStream
   
    Set objTXT = objFSO.CreateTextFile("mintekstfil.txt")
   
    Text1 = objTXT.ReadAll
Avatar billede chris2k Nybegynder
02. november 2002 - 22:10 #2
ups, sendte lidt hurtigt...

udskift lige:
Set objTXT = objFSO.CreateTextFile("mintekstfil.txt")

med:
Set objTXT = objFSO.OpenTextFile("MinTxtFil.txt")

anyway, for at skrive, skal du skrive i koden:

Dim objFSO As New FileSystemObject
    Dim objTXT As TextStream
   
    Set objTXT = objFSO.CreateTextFile("mintekstfil.txt")
   
    objTXT.Write Text1.Text

Husk og skrive:

Set objTXT = Nothing
Set objFSO = Nothing

hver gang du bruger de 2 objekter...

2)
På din form (den du starter på) skal du for dens Properties vælge KeyPreview = True

Gå ind i koden på formen, og skriv:

Dim objFrm As Form
   
    If KeyAscii = vbKeyF9 Then
        Set objFrm = New Form2
        objFrm.Show
    end if


Håber det var det...
Avatar billede webwally Nybegynder
02. november 2002 - 22:15 #3
til 2'eren... forstår jeg ikke helt hvad du mener. I koden til den?? Altså til når den loader? For jeg har lgie prøvet det, og det virker ikke :(

til 1'eren... jeg vil nu helst have en der er funktionel, selv når man ikke har IE installeret..
Avatar billede chris2k Nybegynder
02. november 2002 - 22:21 #4
1)

Det kan man diskutere i mange timer... Microsoft Scripting findes på Win2000 og opefter, og på 9x hvis IE er installeret (hvilket det altid vil være)

Du skal ikke være bange for noget... : )

2)
Glemte at sige at du skal indsætte koden i Form_KeyPress eventen... Sry
Avatar billede chris2k Nybegynder
02. november 2002 - 22:24 #5
Ups igen, den skulle være i Form_KeyDown, og du skal lige ændre KeyAscii til KeyCode...

Sry Sry : )
Avatar billede webwally Nybegynder
02. november 2002 - 22:24 #6
1: IE er ikke, som du skriver, altid installeret på Windows 95 :-) Men ok, det er vel acceptabelt, for det har jo nogle år på bagen :-)

2: Ok
Avatar billede chris2k Nybegynder
02. november 2002 - 22:27 #7
Præcis : ) Lukker du?
Avatar billede webwally Nybegynder
02. november 2002 - 22:33 #8
Jeps, tester lige 1'eren først
Avatar billede chris2k Nybegynder
02. november 2002 - 22:34 #9
oki
Avatar billede kantoraza Nybegynder
03. november 2002 - 10:29 #10
En nemmere måde at lave det hele på. (synes jeg)

- - At gemme en fil - -

* Opret en tekstbox.
* Opret en commandbutton, som koden her skal pastes i.

Private Sub Command1_Click()
' Tekst som skal gemmes
Dim Tekst As String

' Stien til filen
Dim Sti As String

' Giver værdier
Tekst = Text1.Text
Sti = "c:\Tekstfil.txt"

' Gemmer filen

'// Åbner
Open Sti For Output As #1

'//Skriver
Print #1, Tekst

'// Lukker
Close #1


' Skriver besked til bruger
MsgBox "Filen er gemt!", vbInformation
End Sub


- - At registrere keypress - -

120 er værdien af F9.

* Opret 2 forme. Form1 og form2.
* Kopier denne kode ind i form1_keydown

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode = 120 Then
    Form2.Show
  End If
End Sub


Mere er det ikke!

Men vær opmærksom på at hvis du har andet på formen, fx en commandbutton, er fokusen sat på knappen, for det meste. Så derfor skal du inten sætte kode oven for i knappen, eller sætte fokusen på formen.

Fx.

(i knappens mouse up)

' 2 første linjer er en linje
Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Form1.SetFocus
End Sub

Held og lykke!

Mvh.
Rasmus
northcode@e-mail.dk
Avatar billede chris2k Nybegynder
03. november 2002 - 14:28 #11
kantoraza

1) Ved at bruge filesystemobject får du også en masse andre features med. Det er meget nemmere at arbejde med tekstfiler, men det kommer selvfølgelig an på hvad man vil.

2) Det var præcist hvad jeg sagde, bortset fra at hvis du sætter KeyPreview = True, behøver du ikke indsætte KeyDown på alle kontroller, eller lave noget slam kode, som det du foreslår, med at sætte focus til formen. Det vil jo ødelægge hele TAB sekvensen...
Avatar billede martin_moth Mester
04. november 2002 - 09:56 #12
Jeg synes svaret fra 0 er rigtig godt, men svaret fra 0 er også godt. 0 stiller dog et relevant spørgsmål til 0, og det belyser en problemstilling, 0 vist ikke havde tænkt over.

Seriøst: Svaret 03/11-2002 10:29:48 er lige efter bogen, men hvorfor hedder I allesammen 0? I'm confused!
Avatar billede martin_moth Mester
04. november 2002 - 11:45 #13
Nu er jeg mere confuced - lige pludseligt er der navne på indlæggene - før hed allesammen "0" - ignorer mine indlæg, eksperten slog vist bare en bøvs ;o)
Avatar billede chris2k Nybegynder
04. november 2002 - 20:37 #14
Jeg er uenig med martin_moth. 1'eren kan man diskutere længe om, men 2'eren er der ingen diskution om.
Avatar billede martin_moth Mester
04. november 2002 - 23:57 #15
Øhh - jeg troede ikke jeg havde sagt andet end "Svaret 03/11-2002 10:29:48 er lige efter bogen" - for det synes jeg at det er - enhver VB begynderbog bille bruge den fremgangsmåde, vil jeg mene ;o)
Jeg må vist hellere smutte inden jeg bidrager til alt for meget forvirring.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester