Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Помогите создать блокнот! Добавлено: 21.10.05 12:49  

Автор вопроса:  kaant | Web-сайт: www.treeartic.info
Здравствуйте!

Помогите пожалуйста! Я пишу курсову работу по информатике. Мне нужно сделать простейший
текстовый редактор. Нужно, чтобы в нем были меню и панелька инструментов. В меню входят:
ФАЙЛ (Создать, Сохранить, Открыть и Выход), Правка (Вырезать, Копировать и Вставить),
Формат (Выравнивание: По левому краю, По центру, По правому краю и По ширине; Шрифт:
Размер, Начертание, Полужирный, Курсив, Подчеркнутый), Справка (Справка, О программе).
  Я написал код (точнее скопировал некоторые куски кода из VB Application Wizard). Кончно там
код немного усовершенствованный, но это неважно, оно даже интереснее. :)

  При написании кода у меня возникли некоторые трудности и вопросы:

  В коде Создания нового документа нужно, чтобы при его создании выдавалось сообщение о сохранении файла
(т.е., сохранить файл? ДА? Нет? отмена). Если "Да", то должно появляться окно сохранения файла, если "Нет", то
текстовое поле должно очищаться.
    
   Form1 - это имя главной формы
   rtbox - имя текстового пля (это библиотека MS Rich Textbox Control 6.0)

   Вот кусок кода:
   
    Private Sub newdocument_Click()
      If Form1.rtbox.DataChanged = True Then
         a = MsgBox("Документ был изменен! Вы хотите его сохранить?", vbYesNoCancel, "Сохранить изменения?")
           Select Case a
              Case vbYes
                save_Click
              Case vbNo
                End
              Case vbCancel
                cancel = True
        End Select
      End If
      Form1.rtbox.Text = ""
    End Sub
  
  Здесь вся фигня в том, что при выполнении программы пропускается конструкция IF...End If и сразу выполняется
команда Form1.rtbox.Text = "". Никак не могу понять в чем дело! :(

  Также привожу код команды Сохранить документ:

     В General Declaration прописываю массив Dim filename As String.

     Private Sub save_Click()
       Dim sFile As String
         If left$(Form1.Caption, 7) = "Блокнот" Then
           With opendialog
              .DialogTitle = "Сохранить"
              .CancelError = False
              .Filter = "Text Files (*.txt)|*.txt"
              .ShowSave
             If Len(.filename) = 0 Then
              Exit Sub
           End If
            sFile = .filename
           End With
         Form1.rtbox sFile
       lse
        sFile = Form1.Caption
        Form1.rtbox sFile
       End If
     End Sub

 Также привожу полный код программы, чтобы вы смогли сориентироваться в программе:

 opendialog - имя элемента CommonDialog


Dim filename As String
Public DataChanged As Boolean
--------------------------------------
Private Sub about_Click()
Form2.Show vbModal
End Sub
----------------------------------------
Private Sub center_Click()
Form1.rtbox.SelAlignment = rtfCenter
End Sub
----------------------------------------------
Private Sub copy_Click()
    Clipboard.SetText Form1.rtbox.SelRTF
End Sub
-----------------------------------------------
Private Sub cut_Click()
    Clipboard.SetText Form1.rtbox
    Form1.rtbox.SelRTF = vbNullString
End Sub
------------------------------------------------
Private Sub fonttype_Click()
opendialog.Flags = cdlCFBoth
opendialog.ShowFont
Form1.rtbox.SelFontName = opendialog.FontName
End Sub
-----------------------------------------------------
Private Sub helpprog_Click()
 MsgBox "Вместо этого сообщения должна, по идее, появляться справка к программе, но, т.к. делать ее было лень, то ограничился сообщением :)", vbOKOnly + vbInformation, "Справка"
End Sub
---------------------------------------------------------------------------------
Private Sub italic_Click()
Form1.rtbox.SelItalic = Not Form1.rtbox.SelItalic
  Button.Value = IIf(Form1.rtbox.SelItalic, tbrPressed, tbrUnpressed)
End Sub
------------------------------------------------------------------------------
Private Sub left_Click()
Form1.rtbox.SelAlignment = rtfLeft
End Sub
------------------------------------------------------------------------
Private Sub newdocument_Click()
 If Form1.rtbox.DataChanged = True Then
 a = MsgBox("Документ был изменен! Вы хотите его сохранить?", vbYesNoCancel, "Сохранить изменения?")
    Select Case a
         Case vbYes
            save_Click
         Case vbNo
            End
         Case vbCancel
            cancel = True
        End Select
 End If
 Form1.rtbox.Text = ""
End Sub
----------------------------------------------------------------
Private Sub paste_Click()
    Form1.rtbox.SelRTF = Clipboard.GetText
End Sub
----------------------------------------------------------------
Private Sub exit_Click()
End
End Sub
----------------------------------------------------------------
Private Sub polubold_Click()
Form1.rtbox.SelBold = Not Form1.rtbox.SelBold
  Button.Value = IIf(Form1.rtbox.SelBold, tbrPressed, tbrUnpressed)
End Sub
----------------------------------------------------------------
Private Sub right_Click()
Form1.rtbox.SelAlignment = rtfRight
End Sub
----------------------------------------------------------------
Private Sub size_Click()
opendialog.Flags = cdlCFBoth
opendialog.ShowFont
Form1.rtbox.SelFontSize = opendialog.FontSize
End Sub
----------------------------------------------------------------
Private Sub underline_Click()
Form1.rtbox.SelUnderline = Not Form1.rtbox.SelUnderline
  Button.Value = IIf(Form1.rtbox.SelUnderline, tbrPressed, tbrUnpressed)
End Sub
----------------------------------------------------------------
Private Sub open_Click()
Dim sFile As String
    If Form1 Is Nothing Then newdocument_Click
    With opendialog
        .DialogTitle = "Открыть"
        .CancelError = False
        .Filter = "Text Files (*.txt)|*.txt"
        .ShowOpen
        If Len(.filename) = 0 Then
            Exit Sub
        End If
        sFile = .filename
    End With
    Form1.rtbox.LoadFile sFile
    Form1.Caption = sFile

End Sub
----------------------------------------------------------------
Private Sub save_Click()
Dim sFile As String
    If left$(Form1.Caption, 7) = "Блокнот" Then
        With opendialog
            .DialogTitle = "Сохранить"
            .CancelError = False
            .Filter = "Text Files (*.txt)|*.txt"
            .ShowSave
            If Len(.filename) = 0 Then
                Exit Sub
            End If
            sFile = .filename
        End With
        Form1.rtbox sFile
    Else
        sFile = Form1.Caption
        Form1.rtbox sFile
    End If
End Sub
----------------------------------------------------------------
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
 Case "new"
  newdocument_Click
 Case "open"
  open_Click
 Case "save"
  save_Click
 Case "cut"
  cut_Click
 Case "copy"
  copy_Click
 Case "paste"
  paste_Click
 Case "left"
  left_Click
 Case "center"
  center_Click
 Case "right"
  right_Click
 Case "polubold"
  polubold_Click
 Case "italic"
  italic_Click
 Case "underline"
  underline_Click
 Case "size"
  size_Click
 Case "fontstyle"
  fonttype_Click
  End Select
End Sub
----------------------------------------------------------------

ВОПРОСЫ:

   1. Нигде не могу найти, что обозначает оператор WITH?
   2. Как сделать так, чтобы при закрытии программы, точнее, при нажатии на кнопку закрытия ОКНА (крести
в правом верхнем углу), выводилось сообщение о предложении сохранить изменения в документе?

 
Буду очень всем благодарен, если вы мне поможете написать курсовик!!!! :))) Заранее ВСЕМ ОГРОМНОЕ СПАСИБО!!! :)))

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #1 Добавлено: 21.10.05 12:54
Нигде не могу найти, что обозначает оператор WITH?

А что, сразу не ясно? Это чтобы каждый раз имя объекта не писать. По сути код
With opendialog
            .DialogTitle = "Сохранить"
            .CancelError = False
            .Filter = "Text Files (*.txt)|*.txt"
            .ShowSave
            If Len(.filename) = 0 Then
                Exit Sub
            End If
            sFile = .filename
        End With

Можно записать так:

            opendialog.DialogTitle = "Сохранить"
            opendialog.CancelError = False
            opendialog.Filter = "Text Files (*.txt)|*.txt"
            opendialog.ShowSave
            If Len(opendialog.filename) = 0 Then
                Exit Sub
            End If
            sFile = opendialog.filename

выводилось сообщение о предложении сохранить изменения в документе?

Обрабатывай событие Form_Unload.

Ответить

Номер ответа: 2
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #2 Добавлено: 21.10.05 13:52
Обрабатывай событие Form_Unload.

Наверно лучше обрабатывать Form_QueryUnload.

Ответить

Номер ответа: 3
Автор ответа:
 K&M



ICQ: 225442067 

Вопросов: 20
Ответов: 170
 Профиль | | #3 Добавлено: 21.10.05 22:13
Здесь вся фигня в том, что при выполнении программы пропускается конструкция IF...End If и сразу выполняется
команда Form1.rtbox.Text = "". Никак не могу понять в чем дело! :(


не используй DataChanged. Сделай свою булеву переменную и устанавливай ее в True в событии Richtext'а - TextChanged. Сбрасывай в Сохранить, Сохранить как, естественно. И проверяй ее тоже

Ответить

Номер ответа: 4
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #4 Добавлено: 21.10.05 22:33
:) човы себе одно место рвёте, перевожу вопрос чудика на наш язык :)
Мне нужно сделать простейший
текстовый редактор
=
Сделайте мне текстовый редактор


прикол в том, что опять забыли указать цену выполнения заказа :))

Ответить

Номер ответа: 5
Автор ответа:
 kaant



Вопросов: 3
Ответов: 1
 Web-сайт: www.treeartic.info
 Профиль | | #5
Добавлено: 22.10.05 19:18
Попоробовал не использовать DataChange, создал булеву переменную, но все равно не получается! И не совсем понял, что значит Richtext'а - TextChanged. Т.е. код сохранения нужно записать на событите Private Sub rtbox_change()? Или что-то другое?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам