Спасибо Александр, Вы как и обещали добавили св-во CloseDataSource, теперь есть возможность сохранять форму после просмотра отчета, но к сожалению значение этого св-ва не сохраняется в файле отчета.
Спасибо Александр, Вы как и обещали добавили св-во CloseDataSource, теперь есть возможность сохранять форму после просмотра отчета, но к сожалению значение этого св-ва не сохраняется в файле отчета.
Разобрался
FrxClass:
Было
property CloseDataSource: Boolean read FCloseDataSource write FCloseDataSource default False;
Надо
property CloseDataSource: Boolean read FCloseDataSource write FCloseDataSource default True;
Удручило другое: в версии 3.08 напрочь перестало работать Trace into, одно из главных преимуществ 3 версии пропало, при нажатии на F7 дизайнер намертво зависает.
Возникла проблема: в дизайнере отчётов, встраиваемом в программу, невозможно попасть в окно инспектора Оно появляется и исчезает по F11, и выглядит вполне активным. Однако, при щелчке мыши на нём издаёт звук стандартного виндового exception.
C++Builder 5.0, дизайнер вызывается по кнопке из НЕмодального окна (fsNormal), а приложение в целом - MDI.
В дизайнере отчётов, встраиваемом в программу, невозможно попасть в окно инспектора Оно появляется и исчезает по F11, и выглядит вполне активным. Однако, при щелчке мыши на нём издаёт звук стандартного виндового exception.
C++Builder 5.0, приложение - MDI.
Я выяснил, что если при прошлом вызове дизайнера окно инспектора было включено (что фиксируется в Registry), то инспектор появляется позади окна дизайнера, после чего нажатие F11 его выключает, следующее нажатие F11 - включает, но во вновь включенный инспектор попасть невозможно.
Если же изначально при вызове дизайнера инспектор выключен, или он прицеплен к окну в режиме Dock, то всё работает нормально.
Я временно пофиксил проблему, отключив в исходном коде FastReport (frxDesgn.pas) чтение позиции инспектора, сделав там вместо этого FInspector.Visible:=False.
Однако, хотелось бы более толкового решения
То же самое запостил в news.
Надо вернуть метод в frxClass.pas в первоначальный вид:
procedure TfrxReport.DesignReport;
var
p: TfrxPage;
f: TForm;
begin
{$IFNDEF FR_VER_BASIC}
if FDesigner <> nil then Exit;
if frxDesignerClass <> nil then
begin
if PagesCount = 0 then
begin
if FDotMatrixReport then
p := TfrxDMPPage.Create(Self) else
p := TfrxReportPage.Create(Self);
TfrxReportPage(p).SetDefaults;
p.Name := 'Page1';
end;
FScript.ClearItems(Self);
try
f := Screen.ActiveForm;
if f <> nil then
f.Enabled := False;
FModified := False;
FDesigner := TfrxCustomDesigner(frxDesignerClass.NewInstance);
FDesigner.CreateDesigner(nil, Self);
FDesigner.Show;
while not FDesigner.FModalFinished do
Application.HandleMessage;
finally
FDesigner.Free;
FDesigner := nil;
end;
if f <> nil then
begin
f.Enabled := True;
if (not (csDesigning in ComponentState)) and (f.Visible) then
f.SetFocus;
end;
end;
{$ENDIF}
end;
Комментарии
ShowMessage(IntToStr(StrToInt(IntToStr(1))))
Это понятно. А реальный пример "из жизни" можно?
FrxClass:
Было
property CloseDataSource: Boolean read FCloseDataSource write FCloseDataSource default False;
Надо
property CloseDataSource: Boolean read FCloseDataSource write FCloseDataSource default True;
Удручило другое: в версии 3.08 напрочь перестало работать Trace into, одно из главных преимуществ 3 версии пропало, при нажатии на F7 дизайнер намертво зависает.
C++Builder 5.0, дизайнер вызывается по кнопке из НЕмодального окна (fsNormal), а приложение в целом - MDI.
C++Builder 5.0, приложение - MDI.
Я выяснил, что если при прошлом вызове дизайнера окно инспектора было включено (что фиксируется в Registry), то инспектор появляется позади окна дизайнера, после чего нажатие F11 его выключает, следующее нажатие F11 - включает, но во вновь включенный инспектор попасть невозможно.
Если же изначально при вызове дизайнера инспектор выключен, или он прицеплен к окну в режиме Dock, то всё работает нормально.
Я временно пофиксил проблему, отключив в исходном коде FastReport (frxDesgn.pas) чтение позиции инспектора, сделав там вместо этого FInspector.Visible:=False.
Однако, хотелось бы более толкового решения
То же самое запостил в news.
Только при полной рекомпиляции утилита recompile матерится на отсутствие frxDBX5.bpk (у меня версия Professional).