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

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

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

Студворк — интернет-сервис помощи студентам
Здрасте. помогите пож. я VBasic недавно начал изучать. вобщем надо сделать текстовый редактор. надо чтоб в нём была возможность открывать текст из файла, сохранять текст. и ещё надо чтоб можно было изменить размер шрифта. заранее спасибо за помощь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.09.2009, 20:24
Ответы с готовыми решениями:

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

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

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

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

мм.... напишите пож код я не очень в этом разбираюсь)))
0
 Аватар для Toxa33rus
3917 / 918 / 125
Регистрация: 16.04.2009
Сообщений: 1,944
19.09.2009, 21:54
Visual Basic
1
RichTextBox1.LoadFile App.Path & "\RTFText.rtf", rtfRTF 'загрузить файл
К сожалению VB не установлен и подробней написать не могу.
0
0 / 0 / 0
Регистрация: 11.09.2009
Сообщений: 7
24.09.2009, 18:59  [ТС]
Новаяпапка.rar спасибо)) скидываю то что у меня получилось. посоветуйте как сделать чтоб открывался не 1 именно указанный файл, а была возможность выбрать текстовый файл и при сохранении была возможность выбрать куда сохранять файл и как его назвать при сохранении. заранее спасибо!!!
0
 Аватар для RazorQ
591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386
24.09.2009, 19:12
Aleksander112, читай про OpenFileDialog и SaveFileDialog
0
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
24.09.2009, 19:13
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  [ТС]
Огромное спасибо!!! как раз именно то что надо))))
0
24.09.2009, 21:25

Не по теме:

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

0
0 / 0 / 0
Регистрация: 11.09.2009
Сообщений: 7
24.09.2009, 21:42  [ТС]
я просто всегда в яндексе ищу, а там не нашёл...
0
1 / 1 / 0
Регистрация: 12.12.2009
Сообщений: 9
11.03.2010, 12:17
ммм,у меня похожая ситуация,точнее тоже надо сделать текстовый редактор,сам редактор сделал,всё работает,есть только несколько проблем:
1)когда делаеш вставку через правка->вставить то всё нормально,а если деалеш вставку нажатием Ctrl+v то вставляется дважды(тоесть вместо 123 вставляется 123123),причиной этого является привязка команды правка->вставить к комбинации Ctrl+v,как можно это обойти?)(когда отвязываеш команду правка-вставить от комбинации Ctrl+v,то работает правильно(вставка идёт только 1 раз))
----------------------------------------------
2) надо сделать контекстное меню для вызова правой кнопкой мыши(ну как в стандартном блокноте с командами копировать вырезать вставить) в любом месте документа
----------------------------------------------
3)возможность сохранения в txt и rtf форматы(в txt сохраняет,но при открытии в блокноте поолучается как будто мы открываем rtf файл)
({\rtf1\ansi\ansicpg1251\deff0\deflang10 49{\fonttbl{\f0\fnil\fcharset204 MS Sans Serif;}}
\viewkind4\uc1\pard\f0\fs17 ---->сам текст<---- \par })
----------------------------------------------
4)привязать к нему хелп файл(как привязать более менее разобрался,но вопрос в какой программе посоветуете создавать хелп)
----------------------------------------------
5)и какнибудь привязать RichTextBox к границам окна чтоб при изменении размеров окна приложения менялся и размер рабочей области
----------------------------------------------
воть-) буду очень благодарен за любые советы и комментарии-)
0
 Аватар для Toxa33rus
3917 / 918 / 125
Регистрация: 16.04.2009
Сообщений: 1,944
11.03.2010, 22:58
3) при сохранении надо указывать в параметрах тип файла, а то одного только .txt не достаточно
5) у формы есть событие на изменение размеров окна, вот и тяните вслед за ним
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.03.2010, 22:58
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru