Проблема с диалоговой формой
Очень хочется иметь возможность встраивать диалоговую форму FastReport в свою форму в программе.
С самой встройкой проблем не возникает:
frxDialogPage.DialogForm.Parent := любая панель на форме
frxDialogPage.BorderStyle := bsNone;
frxDialogPageDialogForm.Align := alClient;
и все, все показывается, но ничего не работает.
смотрим функцию:
function TfrxEngine.RunDialogs: Boolean;
var
i: Integer;
p: TfrxDialogPage;
begin
.....
p.DialogForm.BorderStyle := p.BorderStyle;
if p.DialogForm.ControlCount <> 0 then
begin
if Assigned(OnRunDialog) then
OnRunDialog(p) else
p.ShowModal;
if p.DialogForm.ModalResult = mrCancel then
begin
Result := False;
break;
end;
end;
....
end;
так как форма модальная, приложение оказывается полностью не работоспособным. Пробовал использовать OnRunDialog и управлять показом формы самостоятельно, но тут возникает проблема. Необходимо приостанавливать работу отчета до возврата из события. Более менее корректно это получается сделать если использовать второй поток.
Сам метод RunDialog переписывать не имею права. А очень бы хотелось получить возможность работать не только с модальной формой.
С самой встройкой проблем не возникает:
frxDialogPage.DialogForm.Parent := любая панель на форме
frxDialogPage.BorderStyle := bsNone;
frxDialogPageDialogForm.Align := alClient;
и все, все показывается, но ничего не работает.
смотрим функцию:
function TfrxEngine.RunDialogs: Boolean;
var
i: Integer;
p: TfrxDialogPage;
begin
.....
p.DialogForm.BorderStyle := p.BorderStyle;
if p.DialogForm.ControlCount <> 0 then
begin
if Assigned(OnRunDialog) then
OnRunDialog(p) else
p.ShowModal;
if p.DialogForm.ModalResult = mrCancel then
begin
Result := False;
break;
end;
end;
....
end;
так как форма модальная, приложение оказывается полностью не работоспособным. Пробовал использовать OnRunDialog и управлять показом формы самостоятельно, но тут возникает проблема. Необходимо приостанавливать работу отчета до возврата из события. Более менее корректно это получается сделать если использовать второй поток.
Сам метод RunDialog переписывать не имею права. А очень бы хотелось получить возможность работать не только с модальной формой.
Комментарии