Доступ к элементам формы из процедуы (без Delphi)
Возможно ламерский вопрос, но я не могу понять.
Исходные данные:
В программе написанной на Delphi, отчет динамически загружается из файла bla.fr3.
Отчет содержит MasterData1, который в свою очередь сожержит несколько Memo (Memo1 ... Memo5).
MasterData1 имеет Stretched="True", а Memo1 ... Memo5 StretchMode="smMaxHeight", т.е. растягиваются в зависимости от содержимого. Также MasterData1 имеет KeepFooter="True", для того чтобы футер не отрывался от последней строки таблицы при разрыве страницы, если можно так выразиться.
Если "последняя строка" большого размера, то остается довольно много свободного места.
Задача: интерактивно изменять высоту строк на странице.
Мой ход решения:
1. Добавить обработчик в окне предварительного просмотра: OnPreviewClick="Memo2OnPreviewClick".
2. В ф-ции Memo2OnPreviewClick увеличить отступы по вертикали от границ "ячейки" и пересоздать отчет, вроде:
Memo2.GupY:=Memo2.GupY+1;
Report.ShowReport;
Проблема:
Этот код работает только в основном коде FastScript (в бесконечной рекурсии). В функции если только Memo2.GupY:=Memo2.GupY+1 ничего не происходит. А если добавить в функцию Report.ShowReport; то вылетает с ошибкой "Access violation at address ... in module ... . Read of address ...".
В чем ошибка, как реализовать правильно?
Исходные данные:
В программе написанной на Delphi, отчет динамически загружается из файла bla.fr3.
Отчет содержит MasterData1, который в свою очередь сожержит несколько Memo (Memo1 ... Memo5).
MasterData1 имеет Stretched="True", а Memo1 ... Memo5 StretchMode="smMaxHeight", т.е. растягиваются в зависимости от содержимого. Также MasterData1 имеет KeepFooter="True", для того чтобы футер не отрывался от последней строки таблицы при разрыве страницы, если можно так выразиться.
Если "последняя строка" большого размера, то остается довольно много свободного места.
Задача: интерактивно изменять высоту строк на странице.
Мой ход решения:
1. Добавить обработчик в окне предварительного просмотра: OnPreviewClick="Memo2OnPreviewClick".
2. В ф-ции Memo2OnPreviewClick увеличить отступы по вертикали от границ "ячейки" и пересоздать отчет, вроде:
Memo2.GupY:=Memo2.GupY+1;
Report.ShowReport;
Проблема:
Этот код работает только в основном коде FastScript (в бесконечной рекурсии). В функции если только Memo2.GupY:=Memo2.GupY+1 ничего не происходит. А если добавить в функцию Report.ShowReport; то вылетает с ошибкой "Access violation at address ... in module ... . Read of address ...".
В чем ошибка, как реализовать правильно?
Комментарии
ИМХО, следует использовать событие OnBeforePrint датабэнда (MasterData1).
Впишите туда вашу строчку: - или что там у вас