• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Ошибка при заполнении штампа.

Автор EnginegrPeckin, 20.12.07, 22:08:35

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

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

EnginegrPeckin

Компас 5.11, при попытке записать в яцейку штампа вылетает с ошибкой (Программа выполнила недопустимую операцию).

OpenStamp;
ColumnNumber(1);
TextLine(New_Line, 0, nil,'Чегото там');
CloseStamp;

В чем может бать проблема? Есть ли другие способы заполнить штамп?

ink

А документ при этом открыт?

EnginegrPeckin

Открыт. OpenStam и ColumnNumber возвращают единины.

ink

Ошибка скорее всего где-то раньше.
Чтобы разобраться, нужен текст исходника.

EnginegrPeckin


library project1;

uses
  Classes, SysUtils, Dialogs, libtool, Ltdefine, ldefin2d;

procedure  LIBRARYENTRY( comm: WORD  );pascal;
begin
if OpenStamp=0 then begin
   KsMessage('Не открывается штамп');
   Exit;
end;
if ColumnNumber(2)=0 then
   KsMessage('Не выбирается графа');
if TextLine(New_Line,0,nil,'rrrrr')=0 then
   KsMessage('Не записывается текст');
CloseStamp;
end;

function   LIBRARYNAME : PChar;pascal;
begin
Result:='Так побаловаться';
end;

function   LIBRARYID   : Cardinal; pascal;
begin
Result:=100;
end;

exports
LIBRARYENTRY,
LIBRARYNAME,
LIBRARYID;

begin
end.

Ошибка возникает при вызове TextLine

ink

#5
Вроде бы все правильно. А настройки проекта соотв. требованиям?
Каким образом установлено, что ошибка возникает именно при вызове TextLine?

AndreySt

#6
Вот у меня сделано заполнение ячейки штампа и все замечательно работет

procedure SetStampItem(k: integer);
var
    stamp    : ksStamp;
    itemParam: ksTextItemParam;
    itemFont : ksTextItemFont;
    kompasApi: KompasObject;
    ksDoc: ksDocument2D;
begin               
  KompasApi := KompasObject(CreateKompasObject);
  ksDoc := ksDocument2D(KompasApi.ActiveDocument2D);
  itemParam := ksTextItemParam(KompasApi.GetParamStruct(ko_TextItemParam));
  if (itemParam <> nil) then begin
    itemParam.Init;
    itemFont := ksTextItemFont(itemParam.GetItemFont);
    itemFont.SetBitVectorValue(NEW_LINE, true);
    stamp := ksStamp(ksDoc.GetStamp);
    stamp.ksOpenStamp;
       if (stamp <> nil) then begin
    stamp.ksColumnNumber(k);
          if (itemFont <> nil) then begin
  itemParam.s := IntToStr(k) + ' ячейка';
ksDoc.ksTextLine(itemParam);
          end;
       end;
    stamp.ksCloseStamp;
  End;
End;


Если есть вопросы или что то не получится отпиши(я это вырезал из одной большой ф-ции)