Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2009.08.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
15-1246084442
Student85236
2009-06-27 10:34
2009.08.30
Как жестко перегрузить Windows XP


1-1213031306
San1712
2008-06-09 21:08
2009.08.30
Как с помощью кода изменить высоту формы ?


2-1246548649
anvolkov
2009-07-02 19:30
2009.08.30
Как передать в процедуру открытый экземпляр Excel ?


15-1246195055
Юрий
2009-06-28 17:17
2009.08.30
С днем рождения ! 28 июня 2009 воскресенье


1-1211873321
ыы
2008-05-27 11:28
2009.08.30
Delphi &amp; FineReader





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский