Gå til innhold
🎄🎅❄️God Jul og Godt Nyttår fra alle oss i Diskusjon.no ×

Ditt første Visual Basic program!


Anbefalte innlegg

Ditt første Visual Basic program!

 

Nå har du sikkert fått en liten introduksjon i hvordan vb egentlig er og vil lage dit eget program. Her kommer jeg til å vise hvordan man lage en utforsker, som i windows bare litt mindre avansert.

 

Jeg går først gjennom en basic utforsker. Lengre ned legger vi til flere funksjoner.

 

 

 

Den letteste

 

Den er veldig lett. Ikke noe særlig koding her. Ferdig blir den omtrent sånn.

 

 

Åpne først kompilern. Se i objekt menyen etter en DriveListBox og sett den inn. Sett også inn en FileListBox og en DirListBox.

Det er alle objektene som trengs. Over til kodinga!

 

Dobbel klikk på DriveListBox’en. Da står det Drive1_change. Det betyr at koden utføres ver gang du skifter stasjon. Skriv inn denne koden:

 

Dir1.Path = Drive1.Drive

 

Dir1.Path er mappa som vises. Drive1.Drive gir stasjonens navn som mappe.

 

Dobbelklikk på DirListBox’en og skriv dette:

 

File1.Path = Dir1.Path

 

File1 lister opp alle filene i dir1 mappen.

 

 

Nå kan du trykke på play og prøve ut programmet. Prøv å velg diskett stasjonen i drive’en. Hvis du ikke har en disket inni vil programmet gi en error melding og avsluttes.

 

Får å forhindre dette må du sette inn litt koden. Bytt ut:

 

File1.Path = Dir1.Path

 

Med:

 

On Error GoTo feil

File1.Path = Dir1.Path

Exit Sub

feil:

MsgBox Err.Description, vbCritical, "Err.nr " & Err.Number

 

Exit sub betyr at når programmet kommer til den delen av koden, skal den stoppe. On error betyr når det er en feil. Da hopper den over exit sub og går til feil. Koden under feil er en msgbox som viser feilmeldingen og nummer’et til den.

 

Da skulle feilmeldinga være borte. Eller den ”dårlige” feilmeldinga :p

 

 

Litt vannskeligere

 

Her skal vi legge til en popup meny med en slett-knapp, en meny i toppen og en label nederst som viser mappen.

 

Først må du legge til menyene. Trykk på din form og se i menyen øverst etter en menu editor-knapp. Trykk på den.

På caption og name skriver du avslutt. Trykk next. Skriv slett2 på caption og name og hak av visible. Trykk next og skriv slett på begge.

 

Legg til en label. Se etter BorderStyle i menyen til høyre. Sett den til 1 – fixed single.

 

Gå til koden delen og finn Dir1_Change. Rett under File1.Path = Dir1.Path skriver du:

 

Label1.Caption = Dir1.Path

 

Da vises mappen i labelen.

 

Nå legger du til denne koden helt øverst, over alt annet:

 

Private Declare Function DeleteFile Lib "kernel32.dll" Alias "DeleteFileA" (ByVal lpFileName As String) As Long

 

Så legger du til denne koden under alt annet:

 

Private sub File1_Rightclick()

PopupMenu slett2

End sub

 

Private sub slett_click()

If Right(Dir1.Path, 1) = "\" Then

Deletefile (Dir1.Path & File1.FileName)

Else

DeleteFile (Dir1.Path & “\” & File1.FileName)

End if

End sub

 

Private sub avslutt_click()

End

End sub

 

DeleteFile sletter filen. If’en forann er bare til fordi at en mappe ender ikke med en skråstrek og en stasjon gjør det.

 

 

Litt mer

 

Her ser du hvordan du kan åpne en fil ved å dobbel klikke på den.

 

Legg til dette helt øverst i koden:

 

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, _

ByVal lpOperation As String, ByVal lpFile As String, _

ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

 

Legg dette til nederst:

 

Private Sub File1_dblClick()

If Right(Dir1.Path, 1) = "\" Then

 

retVal = ShellExecute(Form1.hwnd, "open", Dir1.Path & File1.FileName, "", "", SW_SHOWNORMAL)

 

Else

 

retVal = ShellExecute(Form1.hwnd, "open", Dir1.Path & "\" & File1.FileName, "", "", SW_SHOWNORMAL)

 

End If

End Sub

 

ShellExecute åpner filen og if’en er der fordi mappen ender ikke med en skråstrek, men en stasjon gjør.

 

 

Det var alt jeg hadde til utforskeren. Hvis noen andre vet om noe ting man kan hatt med, kan du sikkert poste det her ;)

Endret av jonas22282460
Lenke til kommentar
Videoannonse
Annonse

Private Sub Drive1_Change()
On Error GoTo feil
Dir1.Path = Drive1.Drive
Exit Sub
feil
MsgBox Err.Description, vbCritical, "Err.nr " & Err.Number
End Sub

Private Sub dir1_change()
Drive1.Drive = Dir1.Path
End Sub

 

Er dette feil?

Tror jeg har skrevet det du sa...

 

Får feil melding... Sub er Functiom not defined

Lenke til kommentar

Skrivefeil. En label skal etterfølges av kolon. Koden blir da:

 

Private Sub Drive1_Change()
On Error GoTo feil
Dir1.Path = Drive1.Drive
Exit Sub
feil:
MsgBox Err.Description, vbCritical, "Err.nr " & Err.Number
End Sub

Private Sub dir1_change()
Drive1.Drive = Dir1.Path
End Sub

Lenke til kommentar
  • 1 år senere...

Jeg driver med dette programmet nå, for å teste litt..

Men får en feil, da jeg prøver å slette noe..

 

Her er koden min:

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Declare Function DeleteFile Lib "kernel32.dll" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
Private Sub Command1_Click()
MsgBox txtTekst.Text = "Hallo verden!"
End Sub

Private Sub dir1_change()
On Error GoTo feil
File1.Path = Dir1.Path
Exit Sub
feil:
MsgBox Err.Description, vbCritical, "Err.nr " & Err.Number
End Sub

Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub

Private Sub File1_Rightclick()
PopupMenu slett2
End Sub

Private Sub slett_click()
If Right(Dir1.Path, 1) = "\" Then
DeleteFile (Dir1.Path & File1.filename)
Else
DeleteFile (Dir1.Path & “ \ ” & File1.filename)
End If
End Sub

Private Sub avslutt_click()
End
End Sub

Private Sub File1_dblClick()
If Right(Dir1.Path, 1) = "\" Then

retVal = ShellExecute(Form1.hwnd, "open", Dir1.Path & File1.filename, "", "", SW_SHOWNORMAL)

Else

retVal = ShellExecute(Form1.hwnd, "open", Dir1.Path & "\" & File1.filename, "", "", SW_SHOWNORMAL)

End If
End Sub

 

Det står at feilen er her:

Private Sub slett_click()
If Right(Dir1.Path, 1) = "\" Then
DeleteFile (Dir1.Path & File1.filename)
Else
DeleteFile (Dir1.Path & “ \ ” & File1.filename)
End If
End Sub

I denne linjen:

DeleteFile (Dir1.Path & “ \ ” & File1.filename)

Værtfall den linjen som er merket med gult, når jeg trygger debug..

 

Noen som vil hjelpe ?

Lenke til kommentar
  • 2 år senere...

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