Главная страница
    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
4-1212749135
Red_imp
2008-06-06 14:45
2009.08.30
Блокировка клавиатуры + мыши под Win XP


2-1246369923
Wind
2009-06-30 17:52
2009.08.30
как соединить два потока


15-1246520770
oxffff
2009-07-02 11:46
2009.08.30
Анонимные методы баг компилятора


4-1216139629
Shamansky
2008-07-15 20:33
2009.08.30
Планировщик задач


3-1226395215
GRAND
2008-11-11 12:20
2009.08.30
cxGrid6 - Access Violation





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский