Главная страница
    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.004 c
2-1246249539
karlit0
2009-06-29 08:25
2009.08.30
Combobox и Memo


15-1246370688
Пит
2009-06-30 18:04
2009.08.30
WEB <-> Настройки <-> БД


15-1246448096
palva
2009-07-01 15:34
2009.08.30
Умерла Людмила Зыкина


15-1246329956
vegarulez
2009-06-30 06:45
2009.08.30
[Indy + PHP] Вопрос про idHTTPServer, как организовать PHP?


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





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