| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
Помогите! редактор текста в VB используя XML
Нужно написать текстовой редактор с простыми возможностями редактирования (изменять размер текста, шрифт - Times New Roman, Verdana и т.д, цвет, bold, italic) в Visual Basic 6, используя в качестве поля для текста RTF - Rich Text Format, эти возможности редактирования будут браться программой из XML-файла, в котором будут разные определения, его тоже нужно сделать.
Без CSS и XSL можно обойтись. Подскажите как это сделать, и обьясните каким образом это должно работать. как должен выглядеть этот ХМЛ файл, какие должны быть в нём определения Заранее Спасибо! Последний раз редактировалось Absolut; 09.12.2006 в 16:39. |
|
|
# 2 |
|
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
Ну XML будет выглядеть как-то так:
PHP код:
C реализацией помоч не смогу, т.к. на VB6 не пишу. |
|
|
|
|
# 3 | |
|
Guest
Сообщения: n/a
|
Цитата:
мне VB.NET тоже сойдёт, хоть VB6 предпочительнее я также сделаю меню, и кнопки допустим я выделил текст и нажал на bold, каким образом на ето должен среагировать сам RTF? как он идёт к функции текста и меняет её на болд? |
|
|
|
# 4 |
|
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
Пишешь обработчики событий для контролов, в которых и меняешь нужные свойства выделенного текста.
У RichTextBox для этого есть свойства: SelText - сам выделенный текст SelBold - жирность выделенного текста SelItalic - наклонность выделенного текста SelColor - цвет выделенного текста SelFontSize - размер выделенного текста |
|
|
|
|
# 5 | |
|
Guest
Сообщения: n/a
|
эти функции я знаю
как эти обработчики событий должны действовать? как именно они должны реагировать? 1)я нажимаю на кнопку Bold 2)програма что-то считывает из XML 3)и лишь затем она вызывает эти приведённые Вами команды для текста: Цитата:
PS. это можно сделать и без XML, используя CommonDialogBox и таблицу http://i12.tinypic.com/433gvv6.jpg , но нужно использовать собственные кнопки и комбобоксы (это не основная проблема) используя хмл |
|
|
|
# 6 |
|
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
Зачем тебе при каждом нажатии кнопки считывать XML? Достаточно это сделать один раз при старте программы. Как прочитать XML на VB6 не подскажу, так как уже говорил, что на VB6 никогда не писал. Могу на C# если очень надо, накидать пример чтения такого XML. Для VB6 такое естественно не подойдет.
Что там происходит? По нажатию кнопок происходят события, в которых и устанавливаются нужные свойства. Но до всего этого, при старте программы, программа считывает из XML несколько флагов (true/false), отвечающих за доступность той или иной функции. Если false - то соответсвующий контрол (например кнопка Bold) скрывается (Visible), и пользователь не сможет ее нажать. Вроде же простейшие вещи приходится объяснять... |
|
|
|
|
# 7 | |
|
Guest
Сообщения: n/a
|
Цитата:
как эти свойства устанавливаются? 1)как изменения вводятся в текст? - они происходят автоматически? или 2)каким образом в РТФ контроле обозначается что эта выделеная часть слова/абзац следует сделать наклонным (италик) если не сложно накидай в Си#, думаю разберусь, главное принцип понять. вот я например в форуме пишу, делаю Bold, и вставляются теги Код:
<B>blabla</B> - (заменил [ на < т.к не даёт) Thanks! Последний раз редактировалось Absolut; 10.12.2006 в 01:08. |
|
|
|
# 8 | ||
|
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
Я в шоке
Объясни мне, как соотносятся твои фразы: Цитата:
Цитата:
Так ты умеешь пользоваться приведенными свойствами?! Ты вообще знаешь что такое события?! |
||
|
|
|
|
# 10 |
|
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
Вот код VB.NET, в VB6 работать не будет, т.к. в в VB.NET совсем другая модель классов!
Тут на форме Form1 компонет RichTextBox1 и кнопка btnColor. При загрузке формы происходит событие Form1_Load, в котором читается вышеприведенный XML-файл и в нем ищется нода <color>. Если в ней прописана строка "false" то кнопка btnColor дизейблится, чтобы пользователь не мог ее нажать (по умолчанию может). Далее, набрав какой-то текст в RichTextBox1 и выделив его часть, пользователь нажимает кнопку btnColor. Тогда происходит событие btnColor_Click. В нем у RichTextBox1, его свойству SelectionColor (в VB6 будет SelColor), которое как раз и дает доступ к цвету выделенного текста, присваивается новый цвет - Blue. Всё. Если и так не понятно, то я умываю руки... Код:
Imports System.Xml
Public Class Form1
Private xmlConfig As XmlDocument
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
xmlConfig = New XmlDocument()
xmlConfig.Load("config.xml")
If xmlConfig.Item("controls").Item("color").InnerText() = "false" Then btnColor.Enabled = False
End Sub
Private Sub btnColor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnColor.Click
RichTextBox1.SelectionColor = Color.Blue
End Sub
End Class
|
|
|
|
|
# 11 | |
|
Guest
Сообщения: n/a
|
Цитата:
вобщем я прочитал, вроде понял, сейчас соображаю как дописывать дальше. Спасибо! |
|