|
Модераторы: MetalFan |
|
RedKot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 2.3.2007 Репутация: нет Всего: нет |
Здравствуйте, посетители и создатели сайта!
Прочитал много литературы, статей, FAQ, обсуждений на форумах, но так и не нашел необходимой информации. Такая проблема: создается Word документ, в котором пишутся вопросы для тестов (текстовая информация) и к этим вопросам могут соответствовать различные картинки, вставленные в документ из файлов, объекты Visio, Excel, PowerPoint, объекты WordArt, формулы и др. Мне необходимо читать из файлов .doc или .rtf по кускам эти вопросы и картинки или объекты и отображать точно так же это все как в документе в приложении Delphi. В прикрепленном файле Word’a есть пример трех вопросов. Как мне из этого файла прочитать первый вопрос и идущую к нему картинку и отобразить точно так же в приложении Delphi, затем, например, по нажатию кнопки, третий вопрос и идущий к нему объект WordArt, затем второй вопрос и идущий к нему вставленный объект Visio? Надеюсь, я смог изложить свою проблему. Очень прошу помочь. :stena В конце темы я выложил свою работу по этой теме (модуль UmyWApp) Это сообщение отредактировал(а) RedKot - 15.4.2007, 08:07 Присоединённый файл ( Кол-во скачиваний: 34 ) ________________.rar 92,91 Kb |
|||
|
||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
OleConteiner
RxRichEdit и т.д. и т.п. -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
RedKot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 2.3.2007 Репутация: нет Всего: нет |
Не стесняюсь спросить, потому что все мы когда то учились, а кто то только начинает… Я не разу не работал с OleContainer… И где взять этот RxRichEdit, что такое RichEdit я знаю, а вот это к сожалению… Albinos_x, можно пример по моей проблеме, очень прошу. Кстати, тема « WordApplication, ExcelApplication, Работа с Word и Excel» мне помогла с работой Word-Delphi, респект. Ну только начинаю я учиться работать со связкой Word и Delphi, помогите! |
|||
|
||||
RedKot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 2.3.2007 Репутация: нет Всего: нет |
Немного оговорюсь – в данной моей проблеме тема « WordApplication, ExcelApplication, Работа с Word и Excel» к сожалению не помогла, я имел ввиду общее, так что моя тема остается открытой |
|||
|
||||
Albinos_x |
|
||||||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
RXLib2005 RXLib 2.752 (Delphi 7) я тоже вот простейший пример:
если сможешь найти способ загрузить содержимое документа в поток то :
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
||||||
|
|||||||
RedKot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 2.3.2007 Репутация: нет Всего: нет |
Albinos_x, я вот подумал, если каждый тестовый вопрос со вставленными объектами заключать в какой-нибудь заранее определенный тег, ну например {….} или >>…<<, то можно же искать программно эти теги и читать всю информацию между ними, включая вставленные объекты, и отображать таким же образом как ты описал в OleContainer…
Я где-то вроде читал, но не подскажешь, как найти эти теги (начальный и конечный) и скопировать все что между ними в OleContainer? И как сделать чтобы в программе никто не мог редактировать документ из OleContainer, а то по двойному щелчку или по правому щелчку мыши по нему загружается Word для изменения документа? Кстати, точно простой пример |
|||
|
||||
Albinos_x |
|
||||||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
как найти есть в моей статье... вот пример как найти теги и выделить текст между ними (тегами):
далее смотри код выше... после копирования не забывай снимать выделение
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
||||||
|
|||||||
RedKot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 2.3.2007 Репутация: нет Всего: нет |
Albinos_x, огромное спасибо за примеры, все работает (вроде как , хотя в дальнейшей разработке программы может и начнутся проблемы).
Я вот нашел такое: WordApplication1.Selection.CopyAsPicture; Это значит что все выделенное можно копировать как изображение? Как с этим работать? Например, я могу это - WordApplication1.Selection.CopyAsPicture вставить в Image1:TImage? |
|||
|
||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
на тексте я это не испытывал, испытывал только для получения картинок из текста....:
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
RedKot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 2.3.2007 Репутация: нет Всего: нет |
Albinos_x, подскажи пожалуйста, как правильно найти и подсчитать все буквы А, или, например, тот же <teg> (описанный выше) по всему документу от начала до конца.
Пробовал подсчитать количество тегов <teg> циклами repeat и while с помощью WordApplication1.Selection.Find.Execute(...) (FindText:=Templ,Wrap:=wdFindContinue) и с помощью WordApplication1.Selection.Find.Text:='<teg>' тоже пробовал, но ничего не вышло, точнее выходит, что у меня либо один раз находит либо бесконечно ищет по всему документу слово '<teg>'. Или хотя бы как определить что документ закончился, и надо прекратить поиск? И где можно взять русское описание всех 15 параметров .Execute(…..)? заранее спасибо. |
|||
|
||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
использовать для подсчёта способов можно множество...
начиная от того, что грузить весь текст в переменную и анализировать её... эта функция возвращает True если нашла и False если не нашла... ищет от текущего места, так что после каждого нахождения необходимо снимать выделение с перемещением курсора в конец...
нигде не видел... переводи справку по VB... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
RedKot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 2.3.2007 Репутация: нет Всего: нет |
Поделитесь опытом создания ScrollBar’ов для OleContainer. Он показывает информацию в поле его видимости, а то что ниже невозможно просмотреть, так как нет ScrollBar у самого OleContainer’а.
|
|||
|
||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
кидай на форму
ScrollBox1: TScrollBox в него помещай OleContainer1: TOleContainer свойство OleContainer1.SizeMode:=AutoSize - выставь в инспекторе объектов, для того, чтоб OleContainer занимал всё видимое пространство ScrollBox, выставь сначала у OleContainer свойство Align в alClient, после верни в alNone.... всё запускай и наслаждайся -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
RedKot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 2.3.2007 Репутация: нет Всего: нет |
что то у меня не получается. пробовал и в инспекторе объектов менять как описано: выставь сначала у OleContainer свойство Align в alClient, после верни в alNone и програмно пробовал: form1.olecontainer1.align:=alClient; form1.olecontainer1.align:=alNone; где только в программе не ставил эти строчки... все равно OleContainer не занимает все видимое пространство ScrolBox |
|||
|
||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
программно не поможет... делай в инспекторе объектов...
при установки Align в alClient, он сразу должен растянуться по всей видимой части ScrolBox, при установке обратно в alNone, уйдёшь от масштабирования в OleContainer... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
RedKot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 2.3.2007 Репутация: нет Всего: нет |
делаю поиск тегов <teg> и <\teg> с помощью .Execute(...) (как было описано выше в примерах от Albinos_x (за что ему спасибо )), если не находит их, то выполняется код except...end:
try ... DD:=wdCollapseEnd; ... except WordApplication1.ActiveDocument.Content.Copy; WordApplication1.Selection.Collapse(DD); OleContainer1.Paste; end; ... то есть, если нет тегов, то я хочу скопировать весь документ и вставить его в OleContainer. Но он копирует только одну страницу (первую) в документе, а остальные нет. Как с этим бороться? И вот еще: программа находит начальный тег <teg> и конечный <\teg>, веделяет все содержимое между ними, копирует и вставляет в OleContainer, но если начальный тег находится на одной странице, а конечный на другой, то в OleContainer вставляется только та информация, которая находится на первой (начальной) странице, а продолжение информации на другой странице вставлять в OleContainer (или копировть, или выделять из Word документа) не хочет. |
|||
|
||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
попробуй сначала снять выделение а потом использовать content , а вообще это скорее всего проблема заключена в OleContainer...
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
RedKot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 2.3.2007 Репутация: нет Всего: нет |
выкладываю результаты моей работы по этой теме:
|
|||
|
||||
mutabor1 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 10.8.2010 Репутация: нет Всего: нет |
по поводу этого кода
задача - сохранить изображения из документа на диске у меня конструкция
работает так
как в этом случае быть? нигде не могу найти нормального хелпа |
||||
|
|||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
1. 1 топик, 1 вопрос
mutabor1, создай для этого отдельную тему 2. если работает - хорошо, в чем суть вопроса? 3. хелпа, как такового нет... только если пробовать лезть в хелп по VB, но код последнего может существенно отличаться от Dephi. 4. возвращаемый вариант тоже может отличаться от действительности, если ты обратил внимание на мои комментарии, то там написано что этот код у меня работал только на картинках, которые размещены "в тексте". "За текстом" и "перед текстом" этот вариант может не прокатить, тогда возможно работает твой вариант... в общем нужно проверять... Это сообщение отредактировал(а) Albinos_x - 26.8.2010, 21:03 -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
SlavutichRed |
|
||||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 13.1.2016 Репутация: нет Всего: нет |
подскажите - на строке DD:=wdCollapseEnd компилятор выдает ошибку undeclared identifier: 'wdCollapseEnd' и дальше не компилирует. Подскажить что где прописать что б начал понимать этот параметр? |
||||
|
|||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
SlavutichRed,
подключите модуль WordXP или Word2000 -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
Правила форума "Delphi: ActiveX/СОМ/CORBA" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |