Avatar billede tiger_webdesign Nybegynder
13. november 2003 - 23:47 Der er 15 kommentarer og
1 løsning

Problem med CommonDialog

Jeg har et mærkeligt problem....

Når jeg kører direkte fra VB6.0 er der ingen problemmer med så snart jeg compiler så er der et problem i koden:

Private Sub aaben_Click()
    With CD
        .filename = ""
        .InitDir = App.Path
        .FilterIndex = 0
        .Flags = cdlOFNFileMustExist
        .Filter = "LightProgram Files | *.lpf"
        .ShowOpen '<--- HER
    End With

    If CD.filename <> "" Then
        sikker = MsgBox("Er du sikker på at du vil overskrive de eksisterende programmer?", vbQuestion + vbYesNo, "Sikker?")
        If sikker = vbYes Then
            indlaes (CD.filename)
        End If
    End If
End Sub

Når programmet har vist open-dialogen og man har valgt en fil så kommer der en

Rum-Time error '5':
Invalid procedure call or argument

-fejl...

Jeg har prøvet at udkommentere .ShowOpen og det hjælper... Men jeg skal virkelig bruge den CommonDialog...
Avatar billede joern Nybegynder
14. november 2003 - 07:34 #1
Hej.

Der er en del i din kode jeg ikke anvender - bruger i øvrigt VB5 - men linien: indlaes (CD.filename)  ser mystisk ud.  Er indlæs en eksisterende funktion?

M.v.h.  Jørn
Avatar billede martin_moth Mester
14. november 2003 - 08:32 #2
CD er sgu nok en CommonDialog
Avatar billede joern Nybegynder
14. november 2003 - 08:58 #3
Godmorgen Martin>>

Ja,- det er ordet 'indlaes' jeg undrer på.

M.v.h. Jørn
Avatar billede martin_moth Mester
14. november 2003 - 09:12 #4
Doh!

Sorry - dummeslag til mig :o)
Avatar billede joern Nybegynder
14. november 2003 - 10:36 #5
Hej.

For nu at webdesign kan prøve noget, så sæt indlaes = (CD.Filename) hvis indlaes er en variabel.

M.v.h.  Jørn
Avatar billede martin_moth Mester
14. november 2003 - 10:56 #6
tiger_webdesign:
Kommer fejlen med fejlbeskedden virkelig i den linie med .Showopen?
Lyder meget meget mystisk. Du er 100% på at din commondialog hedder "CD"?
Avatar billede tiger_webdesign Nybegynder
14. november 2003 - 13:39 #7
Funktionen indlaes:
Private Function indlaes(fil As String)
    ' læs fra en fil
    Set fso = CreateObject("scripting.filesystemobject")
    Set lalala = fso.OpenTextFile(fil, 1, True)
    filetext = lalala.ReadAll
    lines = Split(filetext, vbCrLf)
    If (Left(filetext, Len("LightProgramFile version " & App.Major & "." & App.Minor)) = "LightProgramFile version " & App.Major & "." & App.Minor) Then
        j = 1
        For i = 48 To 57
            SaveSetting "Musical", "programmer", "A" & Str(i), lines(j)
            j = j + 1
        Next i
        For i = 48 To 57
            SaveSetting "Musical", "programmer", "B" & Str(i), lines(j)
            j = j + 1
        Next i
        filename.Caption = Mid(fil, InStrRev(fil, "\") + 1, Len(fil) - InStrRev(fil, "\"))
    Else
        MsgBox ("Ugyldig fil!" & vbCrLf & "Kontrollér versionsnummer")
    End If
End Function
Avatar billede tiger_webdesign Nybegynder
14. november 2003 - 13:40 #8
Fejlen kommer mellem linien .Filter = "LightProgram Files | *.lpf" og .ShowOpen '<--- HER
Avatar billede martin_moth Mester
14. november 2003 - 14:56 #9
Prøv at kommenter dit filter ud. Optræder fejlen så stadig?
Avatar billede tiger_webdesign Nybegynder
15. november 2003 - 21:18 #10
hmm... det var åbenbart linien If CD.filename <> "" Then der ikke var gyldig (?)

lukker...
Avatar billede martin_moth Mester
15. november 2003 - 23:15 #11
Vil du have et svar på ovenstående, eller er du tilfreds med at det virker nu?
Avatar billede tiger_webdesign Nybegynder
15. november 2003 - 23:26 #12
hvis du kan fortælle mig hvorfor den gjorde som den gjorde er der selvfølgelig points i sigte...
Avatar billede martin_moth Mester
15. november 2003 - 23:33 #13
Jeg kan fortælle dig hvad du skal skrive i stedet for, så det virker med den if-sætning...
Avatar billede martin_moth Mester
15. november 2003 - 23:35 #14
brug if len(CD.FileName) > 0 Then

PS: En god skik er nok at belønne folk - bare symbolsk - for at de har gidet at tage sig tid til at beskæftige sig med dit problem...

Eventuelt bare med et "tak"
Avatar billede tiger_webdesign Nybegynder
16. november 2003 - 00:01 #15
sorry...

det gik lidt stærkt... Indrømmet *Flov*

http://www.eksperten.dk/spm/428055 <-- der er nogle point til jer...

Igen undskyld... og tak for hjælpen...
Avatar billede martin_moth Mester
16. november 2003 - 14:17 #16
Det går nok. Det var ikke points jeg var ude efter, jeg er bare lidt irreteret når spørgsmål uden egentlige svar lukkes eller hvis den hjælp der gives ikke følges op. Men det er bare mig var er i PMS-humør...
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