Здравствуйте уважаемые! Кто-нибудь подскажите пожалуйста, как отладить библиотеку написанную на Delphi7, а то у меня она что -то не идет! Пример Кода:
function LibraryName: PChar; pascal;
begin
Result:='Ïðèìåð çàïîëíåíèÿ ÿ÷ååê îñíîâíîé íàäïèñè ÷åðòåæà';
end;
procedure LibraryEntry(command: WORD); pascal;
var
num, num1, note, code: String;
iKompas: KompasObject;
iDoc2D: ksDocument2D;
iStamp: ksStamp;
iTextLineDynamicArray,
iTextItemDynamicArray: ksDynamicArray;
iTextLineParam: ksTextLineParam;
iTextItemParam: ksTextItemParam;
numb: integer;
k , j:integer;
stamp : ksStamp;
itemParam: ksTextItemParam;
itemFont : ksTextItemFont;
kompasApi: KompasObject;
ksDoc: ksDocument2D;
begin
///////////////
iKompas:=KompasObject(CreateKompasObject);
if iKompas = nil then Exit;
iDoc2D:=ksDocument2D(iKompas.ActiveDocument2D);
if iDoc2D = nil then Exit;
if iKompas.ksReadInt('Óêàæèòå íîìåð ÿ÷åéêè îñíîâíîé íàäïèñè', 1, 1, 231, numb) = 1 then
begin
iStamp:=ksStamp(iDoc2D.GetStamp);
iStamp.ksOpenStamp;
iStamp.ksColumnNumber(numb);
iTextLineParam:=ksTextLineParam(iKompas.GetParamStruct(ko_TextLineParam));
iTextItemParam:=ksTextItemParam(iKompas.GetParamStruct(ko_TextItemParam));
iTextLineDynamicArray:=ksDynamicArray(iStamp.ksGetStampColumnText(numb));
iTextLineDynamicArray.ksGetArrayItem(0, iTextLineParam);
iTextItemDynamicArray:=ksDynamicArray(iTextLineParam.GetTextItemArr());
iTextItemDynamicArray.ksGetArrayItem(0, iTextItemParam);
iStamp.ksCloseStamp;
iTextItemParam.s := note;
end;
////////////////////
//////////////////
with DataModule1.IBQuery1 do
begin
SQL.Clear;
SQL.Add('select nmk_note from nmk where nmk_note = :oboz');
ParamByName('oboz').AsString := note;
Open;
Close;
if recordcount <> 0 then
begin
SQL.Clear;
SQL.Add('select Bar_Code from Bar_Codes left join NMK on Bar_Codes.ref_id = NMK.Nmk_id where Bar_Code_Type_id = 1');
Open;
Close;
if recordcount <> 0 then
begin
FieldByName('Bar_Code').AsString := code;
end
else
begin
num:= 'Doc.01.';
SQL.Clear;
SQL.Add('select Nmk_id from NMK where Nmk_note =:Nmk_note');
ParamByName('Nmk_note').AsString := note;
Open;
j := FieldByName('Nmk_id').AsInteger;
Close;
num1 := IntToStr(j);
num := 'Doc.01.' + num1;
SQL.Clear;
SQL.Add('insert into Bar_Codes(Bar_code, Bar_Code_Type_id, Ref_id) values('+
':Bar_Code, :Bar_Code_Type_id, :Ref_id');
ParamByName('Bar_Code').AsString := num;
ParamByName('Bar_Code_Type_id').AsInteger := 1;
ParamByName('Ref_id').AsInteger := j;
Code:= Code_128(num);
end;
end
else
ShowMessage('?a?oa? ia iaeaai! Ii?aeoenoa, nio?aieoa ?a?oa? a aaca e iiaoi?eoa iiiuoeo!')
end;
////////////////
k := 1;
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.fontName := 'BarCode';
itemfont.SetBitVectorValue(ITALIC_OFF, true);
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 := Code;//IntToStr(k) + ' 2121212';
ksDoc.ksTextLine(itemParam);
end;
end;
stamp.ksCloseStamp;
End;
End;
Exports
LibraryName name 'LIBRARYNAME',
LibraryEntry name 'LIBRARYENTRY';
begin
end.