Cоздание текстовых документов

Автор QWERТY, 26.01.05, 09:29:10

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

QWERТY

Вот такой исходник

Var
SheetPar1  : ksSheetPar;
StSheetPar1:ksStandartSheet;
DocTxt     : ksDocumentTxt;
DocTxtPar  : ksTextDocumentParam;
 Lsp1       : ksLibraryStyleParam;

begin

DocTxtPar := ksTextDocumentParam( kompas.GetParamStruct(ko_TextDocumentParam) );

if ( DocTxtPar  nil ) then  begin
        DocTxtPar.Init();
        DocTxtPar.regime:= 0;
        DocTxtPar.fileName:=FileName1;
        DocTxtPar.author:='Ля-ля-ля';
        DocTxtPar.comment:= 'Ля-ля-ля';
        DocTxtPar.type_:=1;

         SheetPar1:=ksSheetPar(DocTxtPar.GetSheetParam);
         SheetPar1.Init();
         SheetPar1.shtType:=1;

         StSheetPar1:=ksStandartSheet(SheetPar1.GetSheetParam);
         StSheetPar1.Init();
         StSheetPar1.multiply:=1;
         StSheetPar1.format:=4;
         StSheetPar1.direct:=False;


         Lsp1:= ksLibraryStyleParam(DocTxtPar.GetFirstSheet);
         Lsp1.Init();
         Lsp1.styleId:=3;

Ошибка возникает при обращении к
         SheetPar1.Init();

Вопрос - где ошибка.

Есть у кого примеры создания текстовых документов в компасе,
вернее как задать формат листа?
Стили оформления можем выставить через ksLibraryStyleParam, т.е.
DocTxtPar.GetFirstSheet и пр.

По идее DocTxtPar.GetSheetParam должен отвечать за размер листа.

YuKa

Код

procedure createKDW();
var
  doc2D   : ksDocumentTxt;
  docPar  : ksTextDocumentParam;
  shPar   : ksStandartSheet;
  shLSP1, shLSPe, shLSPo : ksLibraryStyleParam;
begin
   doc2D := ksDocumentTxt(Kompas.DocumentTxt);
   docPar := ksTextDocumentParam(Kompas.GetParamStruct(ko_TextDocumentParam));
   if docPar <> nil then
   begin
      docPar.Init;
      docPar.regime :=  0;
      docPar.type_ := lt_DocTxtStandart;
      shPar := ksStandartSheet(docPar.GetSheetParam);
      if shPar <> nil then
      begin
         shPar.Init;
         shPar.direct := false;
         shPar.format := 3;
         shPar.multiply := 1;
            shLSP1 := ksLibraryStyleParam(docPar.GetFirstSheet);
            shLSP1.Init;
            shLSP1.styleId := 3;
            shLSPe := ksLibraryStyleParam(docPar.GetEvenSheet);
            shLSPe.Init;
            shLSPe.styleId := 16;
            shLSPo := ksLibraryStyleParam(docPar.GetOddSheet);
            shLSPo.Init;
            shLSPo.styleId := 15;
       end;
     doc2D.ksCreateDocument(docPar);
   end;
end;


Текстовый документ создается ... [только для чтения].
Правда редактировать его можно. Но сохранять только через "Сохранить как...".
Что не так?

Delphi7 + 10SP2

Slaviation

ЦитироватьЕсть у кого примеры создания текстовых документов в компасе,
вернее как задать формат листа?

В прицепе макрос создания текстового документа, записанный с помощью приложения КОМПАС-Макро.

YuKa

Цитата: YuKa от 13.11.09, 00:36:25
Что не так?
Delphi7 + 10SP2
Попробовал вышеприведенный код на V7. Все работает.