Опять про сумму прописью...

slqslq
отредактировано 15:04 Раздел: FastReport 2.xx VCL
Вижу, чтосумма прописью всем надоела, но
помогите, кто-нибудь начинающему...
Я хочу создать свою библиотеку функций, но сколько ни читал руководство и др. хэлпы, не могу догадаться где нужно прописывать код...
Пример из руководства:
----
type

TMyFunctionLibrary = class(TfrFunctionLibrary)
и т.д.
----
Там вроде написано, что в самом модуле FR_Class, но в модуле тоже не пойму
куда? И где вставлять запись для регистрации библиотеки и добавления её в список функций fr?
----
frAddFunctionDesc('SUMPROPIS', 'Мои функции',

'SUMPROPIS(<Число>)/Возвращает сумму прописью.');
----
Короче не догоняю я...
Если не трудно,
помогите...

С уважением...

Комментарии

  • отредактировано January 2004
    unit Unit2;
    
    interface
    
    type
    
      TfrMyFunctionLibrary = class(TfrFunctionLibrary)
      public
        constructor Create; override;
        procedure DoFunction(FNo: Integer; p1, p2, p3: Variant; var val: Variant); override;
      end;
    
    implementation
    
    constructor TfrMyFunctionLibrary.Create;
       procedure AddFunction(FuncName, Category, Description: String);
       begin
          if List.IndexOf(FuncName) <> -1 then
             exit;
          List.Add(FuncName);
          AddFunctionDesc(FuncName, Category, Description);
       end;
    begin
       inherited Create;
       AddFunction('ABS', 'MyFunctionen', 'ABS(<Wert>)/Die Funktion Abs gibt einen absoluten Wert zurück.');
       ...
    end;
    
    
    procedure TfrMyFunctionLibrary.DoFunction(FNo: Integer; p1, p2, p3: Variant; var val: Variant);
    var  
       Name : String;
    begin
       Val := '0';
       Name := List.Strings[FNo];
    
       if SameText(Name,'ABS') then begin
          if p1 = Null then
             Val := 0
          else
             Val := ABS(ValToDouble(frParser.Calc(p1)));
       end
       else if ...;
    end;
    
    // Mainform
    
    procedure MainForm.FormCreate(Sender: TObject);
    begin
       frRegisterFunctionLibrary(TfrMyFunctionLibrary);
    end;
    
    procedure MainForm.FormDestroy(Sender: TObject);
    begin
       frUnRegisterFunctionLibrary(TfrMyFunctionLibrary);
    end;
    
    
    end.
    
  • отредактировано 15:04
    Извените за __, но я не силён в HTML-Code и поэтому взял вместо Space ’ ’ -> ’_’.
    Почемуто все Space изчезают и я незнал как по другому отступ зделать, чтобы легче Code читался.
    Может-кто подскажет, заранее Благодарен.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.