Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Delphi и Corel Draw [D5, WinXP]


xmrz ©   (2004-11-09 01:45:00) 

Обращаюсь к Corel Draw посредством Ole

Пользуясь единственной найденной мной нормальной статьёй с примером понял как работать с объектами типа Text (4). Мне нужно получать доступ к текстовому полю для редактирования шаблона. Не могу понять как работать с полем типа Paragraph Text (6).

Кто знает, подскажите пожалуйста.


pasha_golub   (2004-11-11 17:43:00) [1]

KSergey ©   (11.11.04 15:30) [11]
A-a-a, а то я уж было заволновалси. ;0)


KSergey   (2004-11-11 15:30:00) [2]

> [10] pasha_golub ©   (11.11.04 14:13)
> KSergey ©   (10.11.04 07:37) [8]
> ТОже через ОЛЕ связываешь?

Гы ;)
Не, таких слов там не знают. Да и не на дельфи там. ;) Так что я лишь о приложении сил скорее, чем о средствах и методах ;)


pasha_golub   (2004-11-11 14:13:00) [3]

KSergey ©   (10.11.04 07:37) [8]
xmrz ©   (10.11.04 10:31) [9]
Привет, коллеги.

xmrz ©   (10.11.04 10:31) [9]
Работает, но у меня, с текстом пока ничего нету. У меня импорт из базы в документ, местоположение, размер, некотрые свойства и т.д.

Но уверен, что сложного ничего нету. Кидай сюда код свой будем разбирать. И еще... Библиотеку типов импортировал?

KSergey ©   (10.11.04 07:37) [8]
ТОже через ОЛЕ связываешь?


xmrz   (2004-11-10 10:31:00) [4]

;)

Ребята, а у Вас эти дела вообще из под Delphi работают? Хоть какие-нибудь варианты есть? :)


KSergey   (2004-11-10 07:37:00) [5]

> Область применения - из имеющейся базы данных необходимо
> формировать рекламные блоки для печатных изданий.
>
> Здравствуйте коллега! У вас не намечается случаем работа
> с CorelVentura? ;-)

Сказать нечего, но коллеги здрасьте! ;)  (QuarkXPress)


xmrz   (2004-11-10 00:33:00) [6]

Про CorelVentura не слышал :)
Критерий истинности затаскал уже донельзя, потому и обратился с вопросом,
4=cdr.GetObjectType - я привёл нативный код из статьи, я прекрасно понимаю что овации он вызовет только в рядах заядлых сишников.
С макросом тоже пробовал, но к сожалению макросы хороши для динамического создания объектов, перемешения и другой более тонкой работы, а такую примитивную вещь как редактирование текста мне записать в макрос не удалось.


pasha_golub   (2004-11-09 19:19:00) [7]

Товарищ, код запущен. Во-первых, не указано глобальных переменных (cdr, как я понимаю это приложение).

Во-вторых,

4=cdr.GetObjectType

это, конечно, не ошибка, но пардон попахивает...

В-третьих, "практика - критерий истинности", часто употребляемый здесь призыв. ;0) Попробуйте сначала создать макрос "изнутри" Корела, а потом просмотрите какие методы вызывались.

Область применения - из имеющейся базы данных необходимо формировать рекламные блоки для печатных изданий.

Здравствуйте коллега! У вас не намечается случаем работа с CorelVentura? ;-)


xmrz   (2004-11-09 18:42:00) [8]

верну вопрос наверх


xmrz   (2004-11-09 11:56:00) [9]

Ссылку на статью к сожалению не помню, на королевстве Delphi она есть. Я сейчас на работе, всё дома осталось. Версия Corel - 11 но это не принципиально, пойдёт и 9. Библиотеку типов я не импортировал, пользовался хелпом по VB от 10 Corel'а.
Область применения - из имеющейся базы данных необходимо формировать рекламные блоки для печатных изданий.

Основной вопрос по следующему коду:


Procedure Replace(s_find, s_repl: WideString);
var ObjID, FirstObjID:longint;
   s_global:string;
   fpos:integer;
begin
cdr.SelectAllObjects;
cdr.SelectNextObject(true);
FirstObjID := cdr.GetObjectsCDRStaticID;
Repeat
 if 4=cdr.GetObjectType then  // если это текст
   begin
    s_global:=cdr.GetTextString;
    fpos:=pos(s_find,s_global);
    if fpos>0 then
    cdr.SetTextString(fpos-1,fpos+length(s_find)-1, s_repl);      
   end;
cdr.SelectNextObject(true);
ObjID := cdr.GetObjectsCDRStaticID;
Until ObjID = FirstObjID;
end;



Как быть если замену текста мне нужно делать не в Artistic text (коим является тип 4), а в Paragraph Text (6). При вызове любого метода работающего с Artistic text - ошибка.


pasha_golub   (2004-11-09 10:30:00) [10]

В догонку. Имена файлов указаны для 11 версии.
При импортировании библиотеки типов не пытайтесь создать компонент - много идентификаторов класса TComponent имеют аналогичные имена с идентификаторами библиотеки типов.


pasha_golub   (2004-11-09 10:21:00) [11]

Ссылку, плиз, на статью.

Во-вторых, какая версия Корела?

В-третьих, у Корела есть библиотека типов. Находится она в ...\Corel\Graphics\Programs\coreldrw110.tlb, там же лежит для Фотопайнта.

В-четвертых, у Корела есть хелп по автоматизации, правда под VB, но какая нафиг разница... Находится в ...\Corel\Graphics\Programs\draw11VBA.hlp

ЗЫ А для каких задач используется такая связка? Просто интересно


pasha_golub   (2004-11-09 10:21:00) [12]

Ссылку, плиз, на статью.

Во-вторых, какая версия Корела?

В-третьих, у Корела есть библиотека типов. Находится она в ...\Corel\Graphics\Programs\coreldrw110.tlb, там же лежит для Фотопайнта.

В-четвертых, у Корела есть хелп по автоматизации, правда под VB, но какая нафиг разница... Находится в ...\Corel\Graphics\Programs\draw11VBA.hlp

ЗЫ А для каких задач используется такая связка? Просто интересно


Наверх

Титульная страница Поиск, карта сайта Написать письмо