Search Results for

    Show / Hide Table of Contents

    Регистрация компонентов

    Регистрация всех компонентов движка выполняется в секции initialization.

    initialization
      { вместо картинок используем индексы стандартных картинок 37,38,39 }
      frxObjects.RegisterObject1(TfrxIBXDataBase, nil, '', '', 0, 37);
      frxObjects.RegisterObject1(TfrxIBXTable, nil, '', '', 0, 38);
      frxObjects.RegisterObject1(TfrxIBXQuery, nil, '', '', 0, 39);
    
    finalization
      CatBmp.Free;
      frxObjects.Unregister(TfrxIBXDataBase);
      frxObjects.Unregister(TfrxIBXTable);
      frxObjects.Unregister(TfrxIBXQuery);
    
    end.
    

    Этого достаточно для того, чтобы использовать движок в отчетах. Осталось две вещи: зарегистрировать классы движка в скриптовой системе для того, чтобы к ним можно было обращаться из скрипта, и зарегистрировать редакторы некоторых свойств (например, TfrxIBXTable.TableName), чтобы с компонентом было удобно работать.

    Код регистрации движка в скриптовой системе лучше вынести в отдельный файл с суффиксом RTTI. Подробнее о регистрации классов в скриптовой системе можно прочитать в соответствующей главе. Вот пример такого файла:

    unit frxIBXRTTI;
    
    interface
    
    {$I frx.inc}
    
    implementation
    
    uses
      Windows, Classes, fs_iinterpreter, frxIBXComponents
    {$IFDEF Delphi6}
    , Variants
    {$ENDIF};  
    
    type
      TFunctions = class(TfsRTTIModule)
      public
        constructor Create(AScript: TfsScript); override;
      end;
    
    { TFunctions }
    
    constructor TFunctions.Create;
    begin
      inherited Create(AScript);
      with AScript do
      begin
        AddClass(TfrxIBXDatabase, 'TfrxComponent');
        AddClass(TfrxIBXTable, 'TfrxCustomDataset');
        AddClass(TfrxIBXQuery, 'TfrxCustomQuery');
      end;
    end;
    
    initialization
      fsRTTIModules.Add(TFunctions);
    
    end.
    
    Back to top © ООО «Быстрые отчеты»