Страница: 1 |
Вопрос: Помогите сделать блокнот! | Добавлено: 20.10.05 20:14 |
Автор вопроса: ![]() |
Здравствуйте!
Помогите пожалуйста! Я пишу курсову работу по информатике. Мне нужно сделать простейший текстовый редактор. Нужно, чтобы в нем были меню и панелька инструментов. В меню входят: ФАЙЛ (Создать, Сохранить, Открыть и Выход), Правка (Вырезать, Копировать и Вставить), Формат (Выравнивание: По левому краю, По центру, По правому краю и По ширине; Шрифт: Размер, Начертание, Полужирный, Курсив, Подчеркнутый), Справка (Справка, О программе). Я написал код (точнее скопировал некоторые куски кода из 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. Как сделать так, чтобы при закрытии программы, точнее, при нажатии на кнопку закрытия ОКНА (крести в правом верхнем углу), выводилось сообщение о предложении сохранить изменения в документе? Буду очень всем благодарен, если вы мне поможете написать курсовик!!!! :))) Заранее ВСЕМ ОГРОМНОЕ СПАСИБО!!! :))) |
Ответы | Всего ответов: 9 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #1 | Добавлено: 20.10.05 20:24 |
0. Причём здесь VBA?
1. Для упрощения доступа к объектам. with obj
.method1 .method2 .method3 end with 2. private sub form_unload(cancel as boolean)
if ... then msgbox "Вы хотите сохранить изменения?" .... end if end sub 3. Где такое задание дают в качестве курсового? |
Номер ответа: 2 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 20.10.05 22:09 |
3.В ПТУ |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #3 | Добавлено: 21.10.05 11:08 |
![]() ![]() |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 197.895.916.247 Вопросов: 72 Ответов: 540 |
Профиль | Цитата | #4 | Добавлено: 21.10.05 21:51 |
разработчика подправил в лабеле и пипец
ну если он сдает такую курсовую, он должно-быть пошел учиться на факультет программистов... следовательно ему стоит (на будущее) самому знать как писать подобного рода программы... |
Номер ответа: 5 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 21.10.05 22:05 |
вау |
Номер ответа: 6 Автор ответа: ![]() ![]() ICQ: 237822510 Вопросов: 28 Ответов: 1182 |
Профиль | Цитата | #6 | Добавлено: 21.10.05 22:19 |
ну если он сдает такую курсовую, он должно-быть пошел учиться на факультет программистов... А программистов уже в ПТУ готовят? В мое время туда шли те кто не хотел учиться, а программирование все таки требует определенных знаний в разных областях (если только не ограничиваться Hello world), упорства,настойчивости и усидчивости. Еще хотя бы желания минимального знания английского (чтоб понимать команды и не плавать в МСДН).
P.S.Неужто я уже так стар. |
Номер ответа: 7 Автор ответа: ![]() ![]() ICQ: 237822510 Вопросов: 28 Ответов: 1182 |
Профиль | Цитата | #7 | Добавлено: 21.10.05 22:32 |
Толко сейчас заметил, что этих топиков два. Один в Общем, второй в VBA. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 343368641 Вопросов: 17 Ответов: 686 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 21.10.05 22:42 |
ну если он сдает такую курсовую, он должно-быть пошел учиться на факультет программистов... следовательно ему стоит (на будущее) самому знать как писать подобного рода программы...
сомневаюсь в правельности того, что ты тут написал... если человек низнаети не хочет, то ему достаточно заказать у когонить ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 343368641 Вопросов: 17 Ответов: 686 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 21.10.05 22:58 |
ну если он сдает такую курсовую, он должно-быть пошел учиться на факультет программистов... следовательно ему стоит (на будущее) самому знать как писать подобного рода программы...
сомневаюсь в правельности того, что ты тут написал... если человек низнаети не хочет, то ему достаточно заказать у когонить ![]() |
Страница: 1 |
|