![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
отладка библиотеки [D7, WinXP]
Anton © (2008-06-13 09:49:00)Здравствуйте! Я тут нагородил библиотеку одну для компаса, и что-то там не так. Если кто-то что-то знает про отладку библиотеки, расскажите пожалуйста как. Может кто-нибудь захочет так посмотреть код(он не большой).
library Zapolnenie_o_n;
uses
SysUtils,
Messages,
Dialogs,
Classes,
Windows,
LDefin2D,
ksAuto,
ksConstTLB,
ksTLB,
StdCtrls, ExtCtrls,
DataUnit1 in 'DataUnit1.pas' {DataModule1: TDataModule};
function Code_128(A:ShortString):ShortString; stdcall; external 'S:\SAPR\Resources\BarCode\EAN13\BarCodeEAN13.dll';
{$E rtw}
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;
j:integer;
itemParam: ksTextItemParam;
itemFont : ksTextItemFont;
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
numb:=0;
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;
////////////////
numb := 1;
iKompas := KompasObject(CreateKompasObject);
iDoc2D := ksDocument2D(iKompas.ActiveDocument2D);
itemParam := ksTextItemParam(iKompas.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);
iStamp := ksStamp(iDoc2D.GetStamp);
iStamp.ksOpenStamp;
if (iStamp nil) then begin
iStamp.ksColumnNumber(numb);
if (itemFont nil) then begin
itemParam.s := Code;//IntToStr(k) + ' 2121212';
iDoc2D.ksTextLine(itemParam);
end;
end;
iStamp.ksCloseStamp;
End;
End;
Exports
LibraryName name 'LIBRARYNAME',
LibraryEntry name 'LIBRARYENTRY';
begin
end.
Loginov Dmitry (2008-06-13 18:19:00) [1]> Если кто-то что-то знает про отладку библиотеки, расскажите
> пожалуйста как.
Добавляешь в Run/Parameters exe-шник компаса и запускаешь проект DLL по F9. В нужных местах ставишь точки останова. Для отладки используй кнопки F4, F7, F8.