Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Вниз

Рисование в корале   Найти похожие ветки 

 
diablo   (2003-03-31 20:03) [0]

Мастера подскажите пожалуйста решени.
Как в delphi6 можна создать в корале обьект в виде елементарных
геометрических фигур (круг,квадрат,ромб) и вставить в него текст
Заранее блогадарен :)


 
Irinka-pm   (2003-04-07 09:29) [1]

var
CorelDraw: Variant;

CorelDraw := CreateOleObject("CorelDraw.Automation.8");
// цифирку можете свою поставить
CorelDraw.FileNew;
// или CorelDraw.FileOpen(FileName);
CorelDraw.SetDocVisible(True);
// можно и не показывать, что он там делает, но ведь интересно! :)
// кстати, можно нарисовать, а потом показать - будет на 30% быстрее
... // ну и в конце
CorelDraw.FileSave("NewName", 0, False, 0, False);
CorelDraw.FileExit(False); // можно не писать, если не надо закрывать
CorelDraw := Unassigned;
Формат функций доступным английским языком описан в draw_scr.hlp. Ну а дальше, чего душа (или начальство :) ) желает:
CorelDraw.SetPageOrientation(0);
CorelDraw.SetPageSize(PageW, PageH);
CorelDraw.NewLayer("NewLayer1");
CorelDraw.SelectLayer("NewLayer1");
CorelDraw.CreateEllipse(CalcY(Y1)), CalcX(X1), CalcY(Y2), CalcX(X2), 0, 0, 0);
// ничего я не перепутал!!! именно так у них координаты!
CorelDraw.CreateRectangle(CalcY(Y1)), CalcX(X1), CalcY(Y2), CalcX(X2), CalcX(Radius));
...

Все ясно? За дело!
Да, чуть не забыл о самом главном - как и у любой системы в Corel Draw есть свои "заморочки" :)
1. Ноль координат находится в середине листа бумаги (оригинально, правда?)
2. Положительная ось Y направлено вверх, а X - в право.
3. Координаты - целые числа в микронах. Для удобства я писал функцию:
4. function CalcX(x_mm:double):longint;
5. begin
6. result := Round(x_mm*10000);
end;
7. Углы не знаю в чем, но 90 градусов надо записать как 90000000. Положительные против часовой стрелки.
8. Принцип прорисовки таков: создается объект, а затем ему присваиваются различные свойства, такие как цвет, тип заливки, толщина линий и пр. По умолчанию эти значения через автоматизацию выставить нельзя - не поддерживается.
9. Выше упомянутое наглядно видно на прорисовке текста:
10. CorelDraw.CreateArtisticText( Text, CalcX(X), CalcY(Y));
11. // создаем текст. X,Y - левый нижний
12. // как видите, нет параметров шрифта, размера и пр.
13. With Font do
14. begin
15. if (Italic) and (Bold) then FSK:=14 else
16. if (Italic) then FSK:=8 else
17. if (bold) then FSK:=13 else FSK:=7;
18. end;
19. CorelDraw.SetCharacterAttributes( 0, 0, Font.Name, FSK, Abs(Font.Size)*10,
20. 0, 0, 0, 0, 0, 1000, 1000, HAlign);
21. // присваиваем атрибуты шрифта.
22. // HAlign имеет значения 1,2,3 - влево, по центру, вправо соответственно
23. ColorToCMYK(Font.Color, C,M,Y,K);
24. // это моя функция для преобразования tColor в составляющие в модели CMYK
25. CorelDraw.StoreColor(2, C,M,Y,K, 0,0,0,0); // создание цвета
26. CorelDraw.ApplyUniformFillColor; // применяем цвет к объекту
27. Тоже самое относится к трансформации объектов – сперва создаете, а затем изменяете как хотите.
28. Работают функции для получения информации.
29. CorelDraw.GetSize(XSize, YSize); // получили размеры объекта
30. CorelDraw.MoveObject(0, -YSize); // сдвинули его вниз на свой размер
31. Можно "проверить" все существующие объекты. За круглым столом спрашивали, как это делается, а делается это так:
32. var ObjID, FirstObjID:longint;
33. begin
34. CorelDraw.SelectAllObjects;
35. CorelDraw.SelectNextObject(true);
36. // true для "захода" в сгруппированный объект
37. FirstObjID := CorelDraw.GetObjectsCDRStaticID;
38. Repeat
39. ...
40. // работа с объектом CorelDraw.SelectNextObject(true);
41. ObjID := CorelDraw.GetObjectsCDRStaticID;
42. Until ObjID = FirstObjID; ...
Да ещё если не пойдёт, попробуй сначала запустить Corel, а потом прогу.Если что пиши, или зайди на сайт где я взяла эту информацию http://www.djpate.freeserve.co.uk/AutoCDrw.htm.


 
GROL   (2003-04-09 14:04) [2]

В Королевстве Делфи я вроде все описал
http://www.delphikingdom.ru/treasury/corel.htm



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
14-100890
Rouse_
2003-07-16 06:55
2003.07.31
Опрос


3-100592
jk
2003-07-08 18:28
2003.07.31
Как прервать перетаскивание (Drag&Drop)


1-100663
Interested
2003-07-16 02:05
2003.07.31
Как загрузить иконку из ресурса exe файла, зная её ID?


1-100800
3APA3A
2003-07-17 12:04
2003.07.31
Потомок от TObject и от TComponent


3-100636
Cranium
2003-07-08 20:15
2003.07.31
Значения по умолчнию





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский