Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/74: Рейтинг темы: голосов - 74, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 11.09.2009
Сообщений: 7
1

Текстовый редактор

11.09.2009, 20:24. Показов 14558. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здрасте. помогите пож. я VBasic недавно начал изучать. вобщем надо сделать текстовый редактор. надо чтоб в нём была возможность открывать текст из файла, сохранять текст. и ещё надо чтоб можно было изменить размер шрифта. заранее спасибо за помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.09.2009, 20:24
Ответы с готовыми решениями:

Текстовый редактор
Есть у кого-нибудь написанный на VB текстовый редактор? очень срочно нужен. или посоветуйте, плз,...

Текстовый редактор
Помогите сделать текстовый редактор в visual basic 6.0 Файл -Открыть -Сохранить -Выход Правка...

Подправить текстовый редактор
Нашел проект пользователя inv.DS и "скрестил" со своим html редактором (которым всех уже задолбал)....

Можно ли в VB создать собственный текстовый редактор с собственным форматом документа?
Добрый день! 1) Можно ли в VB создать собственный текстовый редактор с собственным форматом...

11
3896 / 899 / 122
Регистрация: 16.04.2009
Сообщений: 1,825
11.09.2009, 21:52 2
Кидай на форму RichTextBox и.... и всё пожалуй. Редактор готов
Осталось добавить кнопку Открыть, Сохранить и для размера шрифта.
0
0 / 0 / 0
Регистрация: 11.09.2009
Сообщений: 7
12.09.2009, 09:40  [ТС] 3
мм.... а полностью не можешь написать код для этих кнопок?))))

мм.... напишите пож код я не очень в этом разбираюсь)))
0
3896 / 899 / 122
Регистрация: 16.04.2009
Сообщений: 1,825
19.09.2009, 21:54 4
Visual Basic
1
RichTextBox1.LoadFile App.Path & "\RTFText.rtf", rtfRTF 'загрузить файл
К сожалению VB не установлен и подробней написать не могу.
0
0 / 0 / 0
Регистрация: 11.09.2009
Сообщений: 7
24.09.2009, 18:59  [ТС] 5
Новаяпапка.rar спасибо)) скидываю то что у меня получилось. посоветуйте как сделать чтоб открывался не 1 именно указанный файл, а была возможность выбрать текстовый файл и при сохранении была возможность выбрать куда сохранять файл и как его назвать при сохранении. заранее спасибо!!!
0
591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386
24.09.2009, 19:12 6
Aleksander112, читай про OpenFileDialog и SaveFileDialog
0
10065 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
24.09.2009, 19:13 7
Aleksander112, поискал гуглем
Результаты 1 - 10 из примерно 91 900 для commondialog vb. (0,31 секунд)
и вот что нашел:
Создание текстового редактора — базовый вариант
Шаг 1

Загружаем VB 4.0 и, щелкнув форму, сразу меняем ее название (свойство Caption в окне Properties) на «Текстовый редактор». Далее, выбрав в меню Tools команду Menu Editor, формируем для начала стандартное меню «Файл» с командами «Создать», «Открыть», «Сохранить» и «Выход»
(см. Рис. 1.).
Текстовый редактор

Рис. 1.

Шаг 2

Размещаем на форме два элемента управления — RichTextBox (RICHTB32.OCX) и CommonDialog (COMDLG32.OCX) . Они оба являются дополнительными, то есть их надо сначала включить в панель инструментов (будем считать, что это уже сделано). Сам редактор текста будет сделан на основе RichTextBox. В отличие от простого TextBox этот элемент управления может также работать с форматированным текстом. Кроме того, используя методы LoadFile и SaveFile, он читает и записывает не только TXT-, но и RTF-файлы. К тому же при работе с RichTextBox можно использовать загрузку данных просто с помощью метода drag-and-drop. Элемент управления CommonDialog пригодится сразу для нескольких операций в нашем приложении (см. приложение «Тестирование CommonDialog»), в частности для чтения и записи файлов.

Шаг 3

Установите для RichTextBox свойство Scrollbars = «Both».
(Модуль RICHTB32.OCX в последней бета-версии VB 5.0 содержал ошибку. Для вариант «Both» он устанавливал обе линейки прокрутки, но строка текста не могла выйти за правую границу окна — производился автоматический переход на новую строку. В окончательном варианте VB 5.0 эта ошибка исправлена.)

Шаг 4

Операции инициализации и завершения. Выберите на нашей форме в меню «Файл» команду «Создать». В появившемся окне кода в процедуре mnuNew_Click (названия процедур должны соответствовать именам элементов управления меню — поле Name в диалоговом окне Menu Editor) введите строку для начальной очистки текста:

Листинг 1.

Visual Basic
1
RichTextBox1 = ""
Аналогичным образом задайте операцию завершения приложения («Файл», «Выход», mnuExit_Click):

Листинг 2.
Visual Basic
1
Unload Me: End
Шаг 5

Пора заняться операциями чтения-записи файлов. Щелкнув правой клавишей мыши изображение CommonDialog, выберите в меню команду Properties. В появившемся диалоговом окне во вкладе Open/Save установите два поля:

Листинг 3.

Visual Basic
1
2
3
DefaultExt = "txt"
Filter = "Текстовые файлы|*.txt|Форматированные файлы| _
  *.rtf|Все файлы|*.*"
Как и раньше, щелкая мышью команды меню на нашей форме, заполните процедуры mnuOpen_Click и mnuSave_Click (далее — см. код в листинге 1).

Совет

Многие строки кода нашего приложения будут очень похожи друг на друга. Их проще создавать путем копирования уже набранных, а потом исправления отдельных слов. Поэтому будет удобнее, если весь код приложения будет последовательно размещаться в одном окне Code. Для этого в меню Tools выберите команду Options, а потом во вкладке Editor установите флажок Full Module View.
Мы уже создали первый вариант текстового редактора: он может создавать новый текст, корректировать старые файлы, а результаты работы записывать на диск. Попробуйте. При этом можно работать и с командами меню, и с «горячими» клавишами, а также читать исходные данные через механизм drag-and-drop.

Поехали дальше

Шаг 6

Воспользуемся возможностью работы с форматированным текстом. Включим с помощью Menu Editor в меню Файл нашей формы еще одну команду — «Шрифт», а потом уже испробованным способом откроем окно кода и сформируем процедуру mnuFont_Click. Обратите внимание, что здесь потребуется установить константы CommonDialog, которые управляют режимами работы данного окна.

Шаг 7

Теперь аналогичным образом добавим команду «Печать» в меню «Файл» и сформируем процедуру mnuPrint_Click. Однако здесь нужно обратить внимание на один важный момент. На самом деле мы не можем непосредственно распечатать текст из RichTextBox на выбранном устройстве. Сначала нужно передать соответственно подготовленный текст объекту Printer, который потом выдаст его на печать.

Внимание!

Во всех руководствах по VB4/5 в качестве примера распечатки текста приводится такой код:

Листинг 4.

Visual Basic
1
2
CommonDialog1.ShowPrinter
RichTextBox1.SelPrint CommonDialog1.hDC
Однако у меня ничего на печать не выдавалось. Все стало работать, когда я заменил последнюю строку на три такие:

Листинг 5.

Visual Basic
1
2
3
Printer.Print ""
RichTextBox1.SelPrint (Printer.hDC)
Printer.EndDoc
Действительно, в описании VB говорится, что в любом случае объект Printer должен быть проинициализирован — например можно просто выдать пустую строку. Команда Printer.EndDoc не является обязательной — в случае ее отсутствия распечатка выполнится в момент закрытия приложения. А вот команда RichTextBox1.SelPrint (Printer.hDC) нужна всегда — именно она упоминается в описании метода SelPrint.

Шаг 8

Давайте добавим еще и функции поиска текста. В дополнение к меню «Файл» сделаем еще меню «Правка», включим в него две команды — «Поиск» и «Поиск След.» — и запишем соответствующий код в процедуры mnuFind_Click и mnuFindNext_Click.
(Если у вас не была включена опция Option Explicit, то скорее всего вы увидите, что команда «Поиск След.» не работает. Дело в том, что под именем sFind в обеих процедурах будут созданы две разные локальные переменные. Если Option Explicit была установлена, что при запуске будет выдано сообщение о неопределенных переменных и вы догадаетесь, что нужно определить одну глобальную переменную Public sFind в главной части модуля.)

Вот и все — мы создали довольно приличный текстовый редактор. Возможно, в первый раз вам потребовалось на это минут 10—15, но со второй-третьей попытки вы легко уложитесь в обещанные Рис. 2. пять минут.
Текстовый редактор

Рис. 2.

Листинг 6. Листинг 1. Код приложения — текстового редактора

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Option Explicit
Public sFind As String 
 
Private Sub mnuExit_Click()
    ' Завершение работы приложения
    Unload Me: End
End Sub 
 
Private Sub mnuFind_Click()
    ' Запрос на поиск
    sFind = InputBox("Какое слово искать?", , sFind)
    ' Поиск слова по всему тексту
    RichTextBox1.Find sFind
End Sub 
 
Private Sub mnuFindNext_Click()
    ' Передвигаем текущую позицию курсора
    RichTextBox1.SelStart = RichTextBox1.SelStart _
            + RichTextBox1.SelLength + 1
    ' Поиск с текущей позиции
    RichTextBox1.Find sFind, , Len(RichTextBox1)
End Sub 
 
Private Sub mnuFont_Click()
    ' Установка шрифтов
    '
    ' Установка флагов для диалогового окна Font
    ' cdlCFBoth — шрифты принтера и экрана
    ' cdlCFEffects — полный набор свойств шрифтов
    CommonDialog1.Flags = cdlCFBoth + cdlCFEffects
    ' Вывод окна Font — выбор шрифтов
    CommonDialog1.ShowFont
    ' Установка в редакторе параметров шрифтов
    ' в соответствии с выбранными в окне Font
    With RichTextBox1
        .SelFontName = CommonDialog1.FontName
        .SelFontSize = CommonDialog1.FontSize
        .SelBold = CommonDialog1.FontBold
        .SelItalic = CommonDialog1.FontItalic
        .SelStrikethru = CommonDialog1.FontStrikethru
        .SelUnderline = CommonDialog1.FontUnderline
        .SelColor = CommonDialog1.Color
    End With
End Sub 
 
Private Sub mnuNew_Click()
    ' Начальная очистка тестового окна
    RichTextBox1.Text = ""
End Sub 
 
Private Sub mnuOpen_Click()
    ' Режим открытия файла — окно Open
    CommonDialog1.ShowOpen
    ' Прочитать открытый файл в окно редактора
    RichTextBox1.LoadFile (CommonDialog1.filename)
End Sub 
 
Private Sub mnuPrint_Click()
    ' Вывод на печать
    '
    ' Установка флагов для вывода на печать
    CommonDialog1.Flags = cdlPDReturnDC + _
            CdlPDNoPageNums
    If RichTextBox1.SelLength = 0 Then
       ' нет выделенного текста
       CommonDialog1.Flags = CommonDialog1.Flags _
           + cdlPDAllPages
    Else
       ' есть выделенный текст
       CommonDialog1.Flags = CommonDialog1.Flags _
           + cdlPDSelection
    End If
    ' Вывод диалогового окна Print
    CommonDialog1.ShowPrinter
    ' Вывод на печать
    Printer.Print ""
    'RichTextBox1.SelPrint CommonDialog1.hDC
    RichTextBox1.SelPrint (Printer.hDC)
    Printer.EndDoc
End Sub
 
Private Sub mnuSave_Click()
    ' Режим сохранения файла — окно Save
    CommonDialog1.ShowSave
    ' Сохранить созданный файл
    RichTextBox1.SaveFile (CommonDialog1.filename)
End Sub
Тестирование CommonDialog

Элемент управления CommonDialog является весьма многофункциональным. С помощью шести методов обращения к нему — ShowOpen, ShowSave, ShowPriner, ShowFont, ShowColor, ShowFont — можно получить доступ к различным очень полезным операциям в виде диалоговых окон. При этом на форме достаточно установить всего один элемент управления (он не виден при выполнении приложения).

Свойствами CommonDialog можно управлять программным образом или в среде VB. В последнем случае достаточно щелкнуть правой кнопкой мыши его изображение и выбрать команду Properties. Кроме того, режимы работы конкретных окон задаются с помощью набора флагов, устанавливаемых в коде программы. Их описание приведено в Справочной системе VB.

Для освоения CommonDialog может быть полезно следующее небольшое тестовое приложение. Разместите на форме три элемента управления — Command, Option, CommonDialog. Для Option установите свойство Index равным 0. В процедуры Form_Load и Command_Click запишите код, представленный в листинге 2. После этого, устанавливая поочередно разные переключатели и щелкая мышью командную кнопку, выводите на экран разные диалоговые окна (см. Рис. 3. рисунок).
Текстовый редактор

Рис. 3.

Попробуйте поуправлять их режимами, задавая различные значения свойств и флагов CommonDialog.

Листинг 7. Листинг 2. Код теста для изучения элемента управления CommonDialog

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Option Explicit 
 
Private Sub Form_Load()
  Static FlagFormPainted As Integer
  Dim i As Integer
  ' При первом запуске — сделать разметку формы
  If FlagFormPainted <> True Then
    For i = 1 To 5  ' установить массив переключателей
      Load Option1(i)
      Option1(i).Top = Option1(i - 1).Top + 350
      Option1(i).Visible = True
    Next I
    ' Сделать надписи на  каждом переключателе
    Option1(0).Caption =  "Open"
    Option1(1).Caption =  "Save"
    Option1(2).Caption =  "Color"
    Option1(3).Caption =  "Font"
    Option1(4).Caption =  "Printer"
    Option1(5).Caption =  "Help"
    Command1.Caption = "Показать диалоговое окно"
  End If
  FlagFormPainted = True
End Sub 
 
Private Sub Command1_Click()
  If Option1(0).Value Then commonDialog1.ShowOpen
  If Option1(1).Value Then commonDialog1.ShowSave
  If Option1(2).Value Then commonDialog1.ShowColor
  If Option1(3).Value Then 
    commonDialog1.Flags = cdlCFBoth 
    commonDialog1.ShowFont
  End If
  If Option1(4).Value Then commonDialog1.ShowPrinter
  If Option1(5).Value Then 
    commonDialog1.HelpFile = "VB4.HLP" 
    commonDialog1.HelpCommand = cdlHelpContents 
    commonDialog1.ShowHelp
  End If
End Sub
http://www.microsoft.com/Rus/M... x#Section3
1
0 / 0 / 0
Регистрация: 11.09.2009
Сообщений: 7
24.09.2009, 21:18  [ТС] 8
Огромное спасибо!!! как раз именно то что надо))))
0
БурундукЪ
24.09.2009, 21:25
  #9

Не по теме:

Aleksander112, самому слабо было в гугл влезть?

0
0 / 0 / 0
Регистрация: 11.09.2009
Сообщений: 7
24.09.2009, 21:42  [ТС] 10
я просто всегда в яндексе ищу, а там не нашёл...
0
1 / 1 / 0
Регистрация: 12.12.2009
Сообщений: 9
11.03.2010, 12:17 11
ммм,у меня похожая ситуация,точнее тоже надо сделать текстовый редактор,сам редактор сделал,всё работает,есть только несколько проблем:
1)когда делаеш вставку через правка->вставить то всё нормально,а если деалеш вставку нажатием Ctrl+v то вставляется дважды(тоесть вместо 123 вставляется 123123),причиной этого является привязка команды правка->вставить к комбинации Ctrl+v,как можно это обойти?)(когда отвязываеш команду правка-вставить от комбинации Ctrl+v,то работает правильно(вставка идёт только 1 раз))
----------------------------------------------
2) надо сделать контекстное меню для вызова правой кнопкой мыши(ну как в стандартном блокноте с командами копировать вырезать вставить) в любом месте документа
----------------------------------------------
3)возможность сохранения в txt и rtf форматы(в txt сохраняет,но при открытии в блокноте поолучается как будто мы открываем rtf файл)
({\rtf1\ansi\ansicpg1251\deff0\deflang1049{\fonttbl{\f0\fnil\fcharset204 MS Sans Serif;}}
\viewkind4\uc1\pard\f0\fs17 ---->сам текст<---- \par })
----------------------------------------------
4)привязать к нему хелп файл(как привязать более менее разобрался,но вопрос в какой программе посоветуете создавать хелп)
----------------------------------------------
5)и какнибудь привязать RichTextBox к границам окна чтоб при изменении размеров окна приложения менялся и размер рабочей области
----------------------------------------------
воть-) буду очень благодарен за любые советы и комментарии-)
0
3896 / 899 / 122
Регистрация: 16.04.2009
Сообщений: 1,825
11.03.2010, 22:58 12
3) при сохранении надо указывать в параметрах тип файла, а то одного только .txt не достаточно
5) у формы есть событие на изменение размеров окна, вот и тяните вслед за ним
2
11.03.2010, 22:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2010, 22:58
Помогаю со студенческими работами здесь

Создаю текстовый редактор не получается сделать "Выделить все"
visual basic 6.0, подскажите как сделать в правке &quot;Выделить все&quot;

Есть текстовый файл, первый символ каждой строки записать в другой текстовый файл
Есть текстовый файл, первый символ каждой строки записать в другой текстовый файл помогите в...

Текстовый редактор
Добрый вечер. Делаю текстовый редактор с возможностью многопользовательского онлайн...

Текстовый редактор
Мне нужно создать текстовый редактор на C++ Builder с возможностью вставки рисунков и таблиц.В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru