Войти

Показать полную графическую версию : Как рисовать таблицу в RichEdit ?


CJ F.A.N.
09-09-2010, 08:19
Всем доброго времени суток. Была тема http://forum.oszone.net/thread-184916.html, там вроде как разобрался, но появились другие вопросы, поэтому решил создать новую тему.
В общем имеется тхт документ. В нем есть элементы таблицы, то бишь
_____________________________
|
|
|_____________________________

вот что то типа такого. Задача в том, чтобы когда этот документ открывается в Richedit, рисовалась таблица на месте этих элементов, чтобы было красиво))) Но проблема в том что я перерыл все форумы, нигде не могу найти информацию об этом. Многие вообще пишут что нельзя там таблицы рисовать, но я своими глазами видел прогу (без исходников к сожалению), где в компоненте richedit рисовалась таблица! Да и формат RTF это позволяет насколько я знаю. Но вот нигде не описано как это делать. Может есть у кого-то какие нибудь примеры, ссылки? Заранее спасибо!

Admiral
10-09-2010, 21:14
CJ F.A.N. наиболее обширную информацию про RTF даёт его родная документация Word 2003: Rich Text Format (RTF) Specification, version 1.8 (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ac57de32-17f0-4b46-9e4e-467ef9bc5540&displayLang=en) или за 2007й (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=DD422B8D-FF06-4207-B476-6B5396A18A2B&displayLang=en).
Однако данный формат не настолько интуитивно понятен. Например, данный код
RichTextBox1.Rtf = "{\rtf1\fbidis\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}}\viewkind4\uc1\pard\ltrpar\f0\fs24\par\trowd\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \clbrdrt\brdrw15\brdrs\clbrdrl\brdrw15\brdrs\clbrdrb\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1802\pard\intbl\ltrpar\cell\row\pard\ltrpar\par\par}" отсюда (http://www.windowsdevelop.com/windows-forms-general/draw-on-rich-text-box-57173.shtml)
выведет в RichBox’е прямоугольник.
http://i060.radikal.ru/1009/f5/7d241689b37ax.jpg
Прямоугольник в компоненте RichBox в программе на VB.NET (http://i060.radikal.ru/1009/f5/7d241689b37a.png)

Что бы упростить задачу в Word’е/OpenOffice/IBM Lotus’e можно нарисовать данную таблицу, сохранить в Rtf файл с дальнейшим открытием в блокноте для анализа Rtf блока. Изменить размеры таблицы с редакторе и повторить алгоритм заново.
Так наверное наиболее проще выявить интересующие параметры отвечающие за свойства таблицы.




© OSzone.net 2001-2012