обработчики событий

отредактировано August 2008 Раздел: FastReport 4.0
Нужна помощь! На форме отчета много объектов TfrxCrossView, у каждого прописано однотипное событие OnCalcWidth, например:
procedure Cross1OnCalcWidth(ColumnIndex: Integer; ColumnValues: Variant; var Width: Extended);
begin
if (ColumnIndex=0) then
Width := (fr1cm *3.5)
else
if (ColumnIndex<>0) then
Width := ((fr1cm *15.4)/(Cross1.ColCount-1));
end;
как можно получить ссылку на объект TfrxCrossView, который вызывает данный метод? тоесть хочется написать что-то вроде
Width := ((fr1cm *15.4)/(Cross.ColCount-1)) ,
где Cross будет меняться от вызова к вызову, чтобы избавиться от лишнего кода...как это реализовать мне не понятно..
Вообще, суть этого обработчика в том, чтобы таблица всегда растягивалась на оределенную ширину вне зависимости от количества столбцов из которых она состоит, может быть есть какие-то неизвестные мне способы сделать это подругому?
Заранее благодарю.

Комментарии

  • отредактировано 21:07
    может есть что-то типа дельфийского Self , который представляет класс, в котором вызван метод?
  • отредактировано 21:07
    В данном случае можно поступить так: вынести код в отдельную процедуру, типа
    procedure MyProc(Sender: TfrxCrossView; ColumnIndex: Integer; ColumnValues: Variant; var Width: Extended);
    для каждого кросса сделать свой обработчик OnCalcWidth и вызывать из него свою процедуру:
    MyProc(Cross1, ColumnIndex, ColumnValues, Width);
  • отредактировано 21:07
    но ведь вызов процедуры с параметрами осуществляется дольше, а моя цель ускорить работу..последовав Вашему совету все сделано, но никаких улучшений не вижу...=(
    может есть другие способы растянуть кросс на ширину страницы?..

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

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