Редактор шаблона
От: masha__v  
Дата: 17.01.07 09:19
Оценка:
Посоветйте, пожалуйста, как лучше всего организовать редактор шаболона вывода некой иерархической структуры.
В идеале хотелось, чтобы пользователь мог в неком контроле, типа memo, richEdit-a, расставлять пробелы, переводы строк, менять вид скобок, между фиксированным текстом, который нельзя удалять, и для которого можно только менять шрифт (размер, цвет и т.п.). Как лучше хранить такой шаблон и потом использовать при выводе текста?
Пытаюсь сейчас сделать это все в виде html, с использованием css для шрифтов, но есть в основном только HTMLViewer-ы, а не редакторы. К тому же проблема запрета удаления и корректировки фиксированных строк так же остается.
Re: Редактор шаблона
От: jhfrek Россия  
Дата: 17.01.07 09:24
Оценка:
Здравствуйте, masha__v, Вы писали:

__>Пытаюсь сейчас сделать это все в виде html, с использованием css для шрифтов, но есть в основном только HTMLViewer-ы, а не редакторы. К тому же проблема запрета удаления и корректировки фиксированных строк так же остается.


А почему нельзя поверх кидать а потом прятать EditBox когда курсор оказывается в позиции редактируемого поля на ReadOnly memo?
Re: Редактор шаблона
От: Dimonka Верблюд  
Дата: 17.01.07 09:33
Оценка:
Здравствуйте, masha__v, Вы писали:

__>Посоветйте, пожалуйста, как лучше всего организовать редактор шаболона вывода некой иерархической структуры.

__>В идеале хотелось, чтобы пользователь мог в неком контроле, типа memo, richEdit-a, расставлять пробелы, переводы строк, менять вид скобок, между фиксированным текстом, который нельзя удалять, и для которого можно только менять шрифт (размер, цвет и т.п.). Как лучше хранить такой шаблон и потом использовать при выводе текста?
__>Пытаюсь сейчас сделать это все в виде html, с использованием css для шрифтов, но есть в основном только HTMLViewer-ы, а не редакторы. К тому же проблема запрета удаления и корректировки фиксированных строк так же остается.

У меня было сделано нечто похожее. Сначала сделал структуру классов с правилами форматирования и раскрашивания полей. Сделал этим классам сериализацию в XML. И по этим правилам форматирования сделал несколько классов вывода данных в RichText, HTML, PlainText итд. Так как всё это форматирование нужно только внутри программы, то и шаблоны хранятся в локальной таблице (с возможностью экспорта/импорта).

Пример показывать нет смысла — он слишком специализированный под данные.
Re[2]: Редактор шаблона
От: masha__v  
Дата: 17.01.07 09:59
Оценка:
Здравствуйте, Dimonka, Вы писали:

D>Так как всё это форматирование нужно только внутри программы, то и шаблоны хранятся в локальной таблице (с возможностью экспорта/импорта).


В том-то и дело, что хотелось сделать так, чтобы пользователь мог его редактировать
Re[2]: Редактор шаблона
От: masha__v  
Дата: 17.01.07 10:01
Оценка:
Здравствуйте, jhfrek, Вы писали:

J>А почему нельзя поверх кидать а потом прятать EditBox когда курсор оказывается в позиции редактируемого поля на ReadOnly memo?


В EditBox не получиться нормально расставлять enter-ы
Re[3]: Редактор шаблона
От: jhfrek Россия  
Дата: 17.01.07 10:04
Оценка:
Здравствуйте, masha__v, Вы писали:

J>>А почему нельзя поверх кидать а потом прятать EditBox когда курсор оказывается в позиции редактируемого поля на ReadOnly memo?


__>В EditBox не получиться нормально расставлять enter-ы


Почему? — ловим его и вставляем взамен спецсимвол (какое-нибудь '/n')
Re[4]: Редактор шаблона
От: masha__v  
Дата: 17.01.07 10:13
Оценка:
Здравствуйте, jhfrek, Вы писали:

J>Почему? — ловим его и вставляем взамен спецсимвол (какое-нибудь '/n')


Как вариант, так конечно можно делать..., но не очень красиво получится. Хотя все равно, спасибо за идею.
Re[3]: Редактор шаблона
От: Dimonka Верблюд  
Дата: 17.01.07 10:33
Оценка:
Здравствуйте, masha__v, Вы писали:

D>>Так как всё это форматирование нужно только внутри программы, то и шаблоны хранятся в локальной таблице (с возможностью экспорта/импорта).


__>В том-то и дело, что хотелось сделать так, чтобы пользователь мог его редактировать


У меня это тоже было сделано, только не иерархически, а ввиде таблицы. Добавляешь поле, настраиваешь форматирование, смотришь первьюшку результата. В качестве редактора брал DeveloperExpress QantumTreeList. Т.е. получается комбобокс для выбора поля, плюс кнопочка для настройки форматирования поля. Не то чтобы супер удобно, но вполне понятно.
Re[4]: Редактор шаблона
От: jhfrek Россия  
Дата: 17.01.07 10:38
Оценка:
Здравствуйте, Dimonka, Вы писали:

D>>>Так как всё это форматирование нужно только внутри программы, то и шаблоны хранятся в локальной таблице (с возможностью экспорта/импорта).

__>>В том-то и дело, что хотелось сделать так, чтобы пользователь мог его редактировать
D>У меня это тоже было сделано, только не иерархически, а ввиде таблицы. Добавляешь поле, настраиваешь форматирование, смотришь первьюшку результата. В качестве редактора брал DeveloperExpress QantumTreeList. Т.е. получается комбобокс для выбора поля, плюс кнопочка для настройки форматирования поля. Не то чтобы супер удобно, но вполне понятно.

Кстати да, второй способ обойтись без написания собственного контрола — пользователю показывается превьюшка, а конкретные вещи из превьюшки он настраивает в более подходящих для этого контролах. Нужно только обеспечить понятную взаимосвязь
Re[4]: Редактор шаблона
От: masha__v  
Дата: 17.01.07 10:43
Оценка:
Здравствуйте, Dimonka, Вы писали:

D>Здравствуйте, masha__v, Вы писали:


D>>>Так как всё это форматирование нужно только внутри программы, то и шаблоны хранятся в локальной таблице (с возможностью экспорта/импорта).


__>>В том-то и дело, что хотелось сделать так, чтобы пользователь мог его редактировать


D>У меня это тоже было сделано, только не иерархически, а ввиде таблицы. Добавляешь поле, настраиваешь форматирование, смотришь первьюшку результата. В качестве редактора брал DeveloperExpress QantumTreeList. Т.е. получается комбобокс для выбора поля, плюс кнопочка для настройки форматирования поля. Не то чтобы супер удобно, но вполне понятно.


Задача немного другая. Есть иерархическая структура, а ее надо вывести с заданным пользователем форматированием. Т.е., между какими группами какого типа ставить enter-ы, между какими нет, какой отступ у вложенных групп, и т.д.
Re[5]: Редактор шаблона
От: masha__v  
Дата: 17.01.07 10:44
Оценка:
Здравствуйте, jhfrek, Вы писали:

J>Кстати да, второй способ обойтись без написания собственного контрола — пользователю показывается превьюшка, а конкретные вещи из превьюшки он настраивает в более подходящих для этого контролах. Нужно только обеспечить понятную взаимосвязь


Как раз в этом направлении я сейчас и думаю.
Re[5]: Редактор шаблона
От: jhfrek Россия  
Дата: 17.01.07 10:50
Оценка:
Здравствуйте, masha__v, Вы писали:

__>Задача немного другая. Есть иерархическая структура, а ее надо вывести с заданным пользователем форматированием. Т.е., между какими группами какого типа ставить enter-ы, между какими нет, какой отступ у вложенных групп, и т.д.


Вывести с дефолтовым, "подсветить" элементы форматирования и при клику на каждый из них активизировать соответствующий контрол... При изменении в контроле на лету менять форматирование в выведенном.
Re[5]: Редактор шаблона
От: Dimonka Верблюд  
Дата: 17.01.07 10:54
Оценка:
Здравствуйте, masha__v, Вы писали:

__>Задача немного другая. Есть иерархическая структура, а ее надо вывести с заданным пользователем форматированием. Т.е., между какими группами какого типа ставить enter-ы, между какими нет, какой отступ у вложенных групп, и т.д.


Ну и получается в принципе тогда то же самое. Кроме того у меня было сделано разное форматирование в зависимости от типа записи. Параграфы, переносы строки, табы, пробелы заменялись специальными символами, которые никогда не используются в тексте. Типа: ¶,†,· итд
Для вложенных групп можно сделать как раз древовидную структуру. Мне это не понадобилось, хотя тоже можно будет подумать.
Re[6]: Редактор шаблона
От: masha__v  
Дата: 17.01.07 10:56
Оценка:
Здравствуйте, jhfrek, Вы писали:

J>Здравствуйте, masha__v, Вы писали:

J>Вывести с дефолтовым, "подсветить" элементы форматирования и при клику на каждый из них активизировать соответствующий контрол... При изменении в контроле на лету менять форматирование в выведенном.

Сейчас как раз сделала примерно это, только в виде списка с перечнем всех элементов, при выборе в котором этот элемент выделяется в примере рядом и для него активизируются контролы с необходимыми настройками.
Re[5]: Редактор шаблона
От: NeuroVirus Россия  
Дата: 17.01.07 13:21
Оценка:
Здравствуйте, masha__v, Вы писали:

__>Здравствуйте, jhfrek, Вы писали:


J>>Почему? — ловим его и вставляем взамен спецсимвол (какое-нибудь '/n')


__>Как вариант, так конечно можно делать..., но не очень красиво получится. Хотя все равно, спасибо за идею.


тогда не TEdit а TMemo
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.