Tfrxrichview

отредактировано February 2011 Раздел: FastReport 4.0
Доброго времени суток. Вопрос следующий: в моем отчете необходима логика следующего типа: в компоненте tfrxRichView внесен некоторый текст, на основании данных которые отображаются в отчете необходимо подчеркивать некоторые слова.
Например вот так:
tfrxRichView содержит текст: Принять (1), отклонить (2), на рассмотрение (3)
если переменная отчета iType получает от программы 1, то необходимо чтобы было подчеркнуто в tfrxRichView Принять (1), ну и так далее по логике. Как это реализовать: в делфях как это сделать для компонентов tRichEdit и tEdit проблем не возникло, в fastreport разобраться не могу никак.
Застопорился на FindText - как это реализовано в FastReport, процедура для TrichEdit delphi у меня такова:

function SearchTextAndSelect(RichEdit:TRichEdit;SearchText:string):Boolean;
var StartPos, EndPos, Pos: integer;
begin
StartPos := 0;
with RichEdit do
begin
EndPos := Length(Lines.Text);
Lines.BeginUpdate;
while FindText(SearchText,StartPos,EndPos,[stMatchCase]) <> -1 do
begin
EndPos := Length(Text) - StartPos;
Pos := FindText(SearchText,StartPos,Endpos,[stMatchCase]);
Inc(StartPos,Length(SearchText));
SetFocus;
SelStart := Pos;
SelLength := Length(SearchText);
SelAttributes.Style := SelAttributes.Style + [fsUnderline];
Break;
end;
Lines.EndUpdate;
end;
end;

Минимально необходимо - как добраться до FindText компонента TfrxRichView

Комментарии

  • Stalker4Stalker4 123
    отредактировано February 2011
    .comTehno написал: »
    и так далее по логике. Как это реализовать: в делфях как это сделать для компонентов tRichEdit и tEdit проблем не возникло, в fastreport разобраться не могу никак.
    Застопорился на FindText - как это реализовано в FastReport, процедура для TrichEdit delphi у меня такова:

    Минимально необходимо - как добраться до FindText компонента TfrxRichView

    Есть два варианта:
    1) В коде Delphi после загрузки отчета в frxReport но перед ShowReport пишем:
    with frxReport.Script.FindClass('TfrxRichView') do
       AddMethod('procedure FindText(<тут пишем параметры метода>)', CallMethod);
    
    То есть мы динамически к классу TfrxRichView добавляем метод FindText, который потом можно дергать из скрипта отчета.
    Не забудьте в обработчике CallMethod реализовать обработку вызова метода TfrxRichView.FindText.
    Примеры написания CallMethod и добавления методов и свойств можно посмотреть в самом коде FR или в коде моих библиотек (см. мою подпись).

    2) В коде скрипта скрипта для поиска нужного frxRichView пишем:
    var
      oComponent :TfrxComponent;
        
     oComponent := Report.FindObject('MyfrxRichView');
     if oComponent = nil then Exit;
        
     with TfrxRichView(oComponent) do ...
    

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

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