06. januar 2003 - 21:57Der er
26 kommentarer og 1 løsning
fejl i kode
kan i se nogle fejl i dennw kode den virker ikke hos mig
Private sub mFilåben_click()
’Ser om dokumentet er tomt if richtextbox.text = ”” then ’Hvis dokumentet er tomt sker der ingeting. exit sub
else
’Ellers Spørger programmet om brugeren vil gemme dokumentet ’Gemmer resultatet af spøgsmålet som msg Dim Msg As VbMsgBoxResult, cnt As Long ‘sætter et spørgsmålstegn og en ok knap .
Så vidt jeg kan se, så har du noget kludder i dine subs og if's. Du mangler så vidt jeg kan se en "End If" i din første if-sætning, og du mangler en start på din sidste sub, hvis altså der skal være 2 subs. Hvis der kun skal være 1 sub, så har du en "End sub" for meget.
jeg kan ikke fjerne disse irreterende 8221;” da de kommer når jeg copy/past´er
men jeg har rykket det lidt sammen
Private Sub mfilåben_Click() 'ser om dokumentet er tom If RichTextBox.Text = "" Then 'hvis dokumentet er tomt sker der ingen ting Exit Sub Else 'ellers spørger programmet om man vil gemme dokumentet 'gemmer resultat af spm som msg Dim msg As VbMsgBoxResult, cnt As Long 'sætter et ?tegn og en ok knap msg = MsgBox("vil du gemme dokumentet?", vbQuestion + vbYesNo, App.Title) 'hvis ja så gå til gemfilen If msg = vbYes Then mfilgem_Click End If CommonDialog.Filter = "alle understøttede formater|, *.txt;*.rtf;*.ini;*.htm|almendelige tekst filer (txt)|*.txt|, rich text format (rtf)|*.rtf|ini filer|*.ini|htm/html filer|*.htm" 'sætter titlen på dialogen CommonDialog.DialogTitle = "åben fil" 'åbner "åben dokument" dialogboksen commmondialog.ShowOpen 'ser om brugeren har åbnet et dokument If CommonDialog.FileName = "" Then 'hvis brugern ikke har valgt nogen dokument Else 'ellers åbner programmet dokumentet RichTextBox.LoadFile CommonDialog.FileName End If End Sub
Jeg har renset din kode for kommentarer og sat det pænt op, og nu ser den sådan her ud:
Private Sub mFilåben_click() If richtextbox.Text = "" Then Exit Sub Else Dim Msg As VbMsgBoxResult, cnt As Long Msg = MsgBox("Vil du gemmer dokumentet?", _ vbQuestion + vbYesNo, App.Title) If Msg = vbYes Then mFilgem_Click End If End Sub
commondialog.filter = ”Alle understøttede , _ formater|*.txt;*.rtf;*.INI;*.htm|Almindelige Tekst Filer (txt|*.txt|, _ Rich Text Format (rtf)|*.rtf|Ini Filer|*.ini|Htm/Html filer|*.htm”
CommonDialog.dialogtitle = "Åben fil" CommonDialog.showopen If CommonDialog.FileName = "" Then
Else Richtextbox1.loadfile CommonDialog.FileName End If End Sub
1)Der mangler et "Sub-hoved" på efter det første "End Sub" 2)Og din linie med commondialog.filter ser ret så forkert ud 3)If CommonDialog.FileName = "" Then - ja, hvad så? Der mangler vist en linie:o)
’Ser om dokumentet er tomt if richtextbox.text = ”” then ’Hvis dokumentet er tomt sker der ingeting. exit sub
else
’Ellers Spørger programmet om brugeren vil gemme dokumentet ’Gemmer resultatet af spøgsmålet som msg Dim Msg As VbMsgBoxResult, cnt As Long ‘sætter et spørgsmålstegn og en ok knap .
Et godt tip, du vist kan drage stor nytte af. FOrestil dig, du har 300 linier der ser ud som det du har vist i dit indlæg 22:37:49 - det er MEGET uoverskueligt. Prøv at sammenlign med min nedenunder dit indlæg - den er meget nemmere at læse. Derfor:
De "If", "Else" og "End If" der hører sammen står med samme indrykning. Alt imellem disse får en ekstra indrykning osv. Kommentarer kun hvor de er nødvendige. Og nu vi er i gang - variabelnavne med sigende navne, f.eks. strFornavn for en string der indeholder et fornavn. Bare et par råd, jeg tror du vil blive glad for :o)
ja et subhoved mangler der, kan definere det lidt bedre jeg aner ikke hvad et subhoved er, det skal lige siges det er en kode jeg skriver fra et toturial på nette jeg har ingen bøger over V.B (gid jeg havde) så havde der nok ikke været fejl i
En procedure skal have et hoved og en End Sub (tilsvarende for funktioner). Alt der ligger derimellem er procedurens indhold. Et procedurehoved, der ikke modtager parametre, erklæres som Private Sub Procedurenavn() - hvis den altså er private. Ellers Public Sub Procedurenavn()
Mon ikke du så skulle starte med at finde ud at det helt grundlæggende, hvad en procedure er, hvad en funktion er, hvad en variabel er, hvad en event og en property er, hvordan en if-then-else sætning opbygges, hvordan man laver løkker osv. , inden du kaster 50 linier tilfældig kode ud og beder os forklare dig hvor fejlene er?
Uden ovenstående HELT basale viden kommer du ingen vegne med VB. Start med at læs en bog, vil jeg foreslå. Fx den jeg nævner i www.eksperten.dk/spm/298408 01/01-2003 19:40:35
Hvis du stadig kæmper med din kode, så husk at du skal have en commondialog-kontrol på din form, samt en kontrol eller en menu (sandsynligvis en menu) med navnet mFilåben for at den virker... /Martin
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.