Вставка в макрообъект

Автор Kredo, 13.10.05, 05:31:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Kredo

Создаю макрообъект. Рисую в нём окружность. Затем для этой окружности пытаюсь вставить обозначение центра, появляется ошибка, обратившаяся по адресу 00627546 в модуле kMth2D.DLL В чём проблема? Если рисую макрообъект без обозначения центра, тогда всё без проблем.

333

Приведите фрагмент кода.

Kredo

От ошибки избавиться удалось. Макрообъект создаётся нормально. Но вот что теперь меня интересует. Если я делаю обозначение центра самостоятельным, т.е. baseCurve:=0, тогда я могу чётко установить его там, где мне надо. Если же я его делаю через указатель на окружность, тогда у меня обозначение центра встаёт там, куда указал курсором, но никак не на самих окружностях.

Вот кусок кода (где обозначение центра создаётся независимо от окружности):

cp:=ksCentreParam(kompas.GetParamStruct(ko_CentreParam));

doc.ksMacro(0);
        prym:=ksRectangleParam(kompas.GetParamStruct(ko_RectangleParam));
        if prym=nil then
                exit;
        prym.Init();
        prym.x:=x1;
        prym.y:=y1;
        prym.ang:=0.0;
        prym.height:=HL1;
        prym.width:=LL1;
        prym.style:=1;
        doc.ksRectangle(prym,0);
        p:=doc.ksCircle(x1+ll2,y1+hl2,rl1,1);
        if cpnil then
                begin
                cp.Init;
                cp.baseCurve:=0;
                cp.x:=x1+ll2;
                cp.y:=y1+hl2;
                cp.angle:=angl;
                cp.type_:=2;
                cp.standXpTail:=false;
                cp.standXmTail:=false;
                cp.standYpTail:=false;
                cp.standYmTail:=false;
                cp.lenXpTail:=rl1;
                cp.lenXmTail:=rl1;
                cp.lenYpTail:=rl1;
                cp.lenYmTail:=rl1;
                doc.ksCentreMarker(cp);
                end;
        p:=0;
        p:=doc.ksCircle(x1+ll2+rl,y1+hl2,rl1,1);
        if cpnil then
                begin
                cp.Init;
                cp.baseCurve:=0;
                cp.x:=x1+ll2+rl;
                cp.y:=y1+hl2;
                cp.angle:=angl;
                cp.type_:=2;
                cp.type_:=2;
                cp.standXpTail:=false;
                cp.standXmTail:=false;
                cp.standYpTail:=false;
                cp.standYmTail:=false;
                cp.lenXpTail:=rl1;
                cp.lenXmTail:=rl1;
                cp.lenYpTail:=rl1;
                cp.lenYmTail:=rl1;
                doc.ksCentreMarker(cp);
                end;
        doc.ksEndObj;