Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.30;
Скачать: CL | DM;

Вниз

отладка библиотеки   Найти похожие ветки 

 
Anton   (2008-06-13 09:49) [0]

Здравствуйте! Я тут нагородил библиотеку одну для компаса, и что-то там не так. Если кто-то что-то знает про отладку библиотеки, расскажите пожалуйста как. Может кто-нибудь захочет так посмотреть код(он не большой).

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) [1]

> Если кто-то что-то знает про отладку библиотеки, расскажите
> пожалуйста как.


Добавляешь в Run/Parameters exe-шник компаса и запускаешь проект DLL по F9. В нужных местах ставишь точки останова. Для отладки используй кнопки F4, F7, F8.



Страницы: 1 вся ветка

Текущий архив: 2009.08.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
15-1245963387
Германн
2009-06-26 00:56
2009.08.30
Старикам, помнящим свою молодость.


4-1215758422
Thunderstorm
2008-07-11 10:40
2009.08.30
OpenSSL


6-1205991809
mrfreeman2007
2008-03-20 08:43
2009.08.30
Счетчик посещений


15-1246469626
dmk
2009-07-01 21:33
2009.08.30
Бесперебойники


2-1246258682
Andrey K
2009-06-29 10:58
2009.08.30
TStringGrid, мыш, хинт