kaka777
Гость
|
|
« : 17-04-2008 09:45 » |
|
всем привет! проблемка вот в чем: когда загружаю в компонент РичЕдит вордовскый документ то виводится строка карказяблыкив(квадратики всякие) а не текст, но когда я с ворда скопировал содержимое и вставил в РичЕдит и сохранил докум. то в последствии откривался и отображался текст нормально! как зделать чтоби етого избежать и откривать документ коректно без етого гемороя. заранее спосибо за ответ
|
|
|
Записан
|
|
|
|
Вад
|
|
« Ответ #1 : 17-04-2008 10:27 » |
|
Меня терзают смутные сомненья... А кто сказал, что RichEdit держит формат Word? Он просто расширенные возможности по форматированию поддерживает. Я RichEdit-ом как-то не пользовался, насколько понял при беглом просмотре MSDN, надо либо формат RTF использовать, либо для формата .doc использовать стороннюю библиотеку или писать свою в соответствии с форматом
|
|
|
Записан
|
|
|
|
kaka777
Гость
|
|
« Ответ #2 : 18-04-2008 06:34 » |
|
зделав доковский документ в формате РТФ, в результате текст отображается вроде нормально, а вот табличка-УЖАС! если не РичЕдитом отображать то каким компонентом?(Мемо полем?). если да или другим, если нужно подключить некоторые библиотеки подскажите пожалуйста(может пример).просто нужно чтоб отображалля доковский документ коректно
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #3 : 18-04-2008 06:52 » |
|
kaka777, можно использовать Ole-контейнер или TWebBrowser
|
|
|
Записан
|
|
|
|
kaka777
Гость
|
|
« Ответ #4 : 21-04-2008 07:17 » |
|
все класно отображаэтся через ОЛЕ контейнер(доковски документи), но есть одна деталь, немогу зделать полосу прокрутки! метода такова нет (скрул), но зато есть ScrollBy(int,int) но у меня не получаеться, так и не появляэться полоса прокрутки.может я неправильно ее использую (OleContainer1->ScrollBy(50,50) ? ХЕЛП!!!
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #5 : 21-04-2008 09:45 » |
|
kaka777, не парься. Сохрани свой doc-документ как веб-документ (htm) и загружай его в TWebBrowser, типа: WebBrowser1->Navigate("File://Путь к файлу");
|
|
|
Записан
|
|
|
|
kaka777
Гость
|
|
« Ответ #6 : 21-04-2008 11:18 » |
|
zubr,спосибо за ответ, но я или слепой или ещо чтото но немогу найти етот компонент! в какой он вкладке находится?
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #7 : 22-04-2008 03:57 » |
|
kaka777, в Delphi он на вкладке Internet, в стройке не помню, но точно должен быть. Возможно он у тебя просто не установлен. Попробуй, открой меню Component->Install Packages... Появится список установленных и не установленных пакетов. Поищи в этом списке пакет Borland Internet Components - и если чекбокс не включен, включи его, затем Ok.
|
|
|
Записан
|
|
|
|
kaka777
Гость
|
|
« Ответ #8 : 22-04-2008 06:25 » |
|
Почему я ето все спрашиваю, потому что мне нужно сделать вот что:есть документ страниц так на 200, нужно отображать в МЕМО или в РычЕдит или ОлеКонтейнере или... только подпункт етого дока(тоесть 2-3 страницы),я понимаю ето надо сделать некоторый алгоритм по чтению документа и вывода только подпункта! также в последующем сделать поиск в подпункте. а если документ преобразовать в HTM формат там добальяеться всякая ерунда HTML-овская(тегы) будет ли это корректно, если нет то какими компонентами нормально? заранее спасибо за ответ
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #9 : 22-04-2008 06:46 » |
|
kaka777, я вижу 2 варианта: 1. Отображать в OLE-контейнере, но как активный документ. Недостаток - будет отображаться кроме документа весь вордовский интерфейс + полосы прокрутки. 2. Отображать в TWebBrowser, как HTML-документ. Выглядеть будет красивее чем первый вариант. Для поиска в обоих случаях лучше будет использовать готовые возможности Word (объектная COM-модель) или IE (объектная COM-модель). Для выбора и отображения нужной части текста опять таки надо будет использовать в обоих вариантах объектные модели. Можно конечно еще воспользоваться различными сторонними компонентами, всякими расширенными RichEdit, но тут я тебе не помощник, сторонними компонентами стараюсь не пользоваться (кроме своих).
|
|
|
Записан
|
|
|
|
kaka777
Гость
|
|
« Ответ #10 : 22-04-2008 09:15 » |
|
я склоняюсь на счет ОЛЕконтейнера! Текст отображается нормально в виде не доковском(я там все поотключал) а типа в МЕМО, но нету Скрула, немогу разобраться. как уже писал пробовал сделать так: OleContainer1->ScrollBy(50,50) может знаешь как? а так пока все
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #11 : 22-04-2008 09:36 » |
|
Так ты сможешь отобразить только одну страницу текста. Для прокрутки этой одной страницы можно сделать так: на ScrollBox ложишь оле-контейнер, делаешь у оле-контейнера Align=alNone, ставишь Height у контейнера достаточно большой, чтобы вмещалась страница.
|
|
|
Записан
|
|
|
|
kaka777
Гость
|
|
« Ответ #12 : 22-04-2008 11:47 » |
|
ЗУБР: все! сделал тат и так, больше понравился вариант с компонентом WebBrowser, хватит експерементировать! нада приниматся за изучение объектних COM-моделей. спасиб за консультации но далеко не уходи, еще наверняка понадобятся
|
|
|
Записан
|
|
|
|
kp1t
Гость
|
|
« Ответ #13 : 16-04-2010 15:56 » |
|
а вот если у меня несколько страниц в документе как вставить в OleContainer? я пробовал вставляется только первая страница
|
|
|
Записан
|
|
|
|
|