Проблема с CommonDialog. - при нажатии "Отмена" программа вылетает - VB
Формулировка задачи:
Вообщем я ради тренировки моих скромных способностей решил написать простеёший текстовый редактор, и вот в процессе тестирования у меня возникла проблемка : если в окне редактора чё-нить написать и попробовать его закрыть (предворительно НЕ сохраняя) то он спрашивает "Текст изменён. Сохранить изменения?" Если нажать "Да", то в этом случае откроется окно "Сохранить как..." и если нажать "Отмена", то тогда появляется какая-то ошибка и редактор вылетает. Помогите пожалуйста! Вот весь его код:
И ещё если сможете подскажите все возможности CommonDialog типа:
CommonDialog1.ShowOpen
CommonDialog1.ShowSave
CommonDialog1.FileName
и чего все они значат(выполняют) плиззз!
Листинг программы
- Option Explicit
- Dim fName As String
- Dim fChanged As Boolean
- Private Sub Form_Terminate()
- Dim r As Integer
- Dim fn As Integer
- If fChanged = True Then
- r = MsgBox("Текст изменён. Сохранить изменения?", vbInformation + vbYesNo, "MEdit")
- If r = vbYes Then
- If fName = "" Then
- CommonDialog1.FileName = ""
- CommonDialog1.DefaultExt = "txt"
- CommonDialog1.Filter = "*.txt"
- CommonDialog1.ShowSave
- MsgBox CommonDialog1.FileName
- fName = CommonDialog1.FileName
- End If
- fn = FreeFile
- fName = CommonDialog1.FileName
- Open fName For Output As fn
- Print #fn, Text1.Text
- Close #fn
- End If
- End If
- Unload Form1
- End Sub
- Private Sub mnuAbout_Click()
- Form2.Show vbModal
- End Sub
- Private Sub mnuExit_Click()
- Dim r As Integer
- Dim fn As Integer
- If fChanged = True Then
- r = MsgBox("Текст изменён. Сохранить изменения?", vbInformation + vbYesNo, "MEdit")
- If r = vbYes Then
- If fName = "" Then
- CommonDialog1.FileName = ""
- CommonDialog1.DefaultExt = "txt"
- CommonDialog1.Filter = "*.txt"
- CommonDialog1.ShowSave
- MsgBox CommonDialog1.FileName
- fName = CommonDialog1.FileName
- End If
- fn = FreeFile
- fName = CommonDialog1.FileName
- Open fName For Output As fn
- Print #fn, Text1.Text
- Close #fn
- End If
- End If
- Unload Form1
- End Sub
- Private Sub mnuOpen_Click()
- If fChanged = True Then
- Dim r As Integer
- Dim fn As Integer
- r = MsgBox("Текст изменён. Сохранить изменения?", vbInformation + vbYesNo, "MEdit")
- If r = vbYes Then
- If fName = "" Then
- CommonDialog1.FileName = ""
- CommonDialog1.DefaultExt = "txt"
- CommonDialog1.Filter = "*.txt"
- CommonDialog1.ShowSave
- p; If CommonDialog1.FileName <> "" Then
- fName = CommonDialog1.FileName
- Else
- Exit Sub
- End If
- fn = FreeFile
- Open fName For Output As #fn
- Print #fn, Text1.Text
- Form1.Caption = "MEdit - " & fName
- Close #fn
- fChanged = False
- End If
- End If
- End Sub
- Private Sub Text1_Change()
- fChanged = True
- End Sub
Решение задачи: «Проблема с CommonDialog. - при нажатии "Отмена" программа вылетает»
textual
Листинг программы
- If fName = "" Then
- CommonDialog1.FileName = ""
- CommonDialog1.DefaultExt = "txt"
- CommonDialog1.Filter = "*.txt"
- CommonDialog1.ShowSave
- MsgBox CommonDialog1.FileName
- fName = CommonDialog1.FileName
- Else
- CommonDialog1.FileName = ""
- CommonDialog1.DefaultExt = "txt"
- CommonDialog1.Filter = "*.txt"
- CommonDialog1.ShowSave
- MsgBox CommonDialog1.FileName
- fName = CommonDialog1.FileName
- End If
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д