Форум: "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.009 c