Висяк при экспорте в Excel
FR3.07, Delphi2005(Trial), Excel 2003, Windows 2003. При выполнении экспорта в Excel (XML) c автоматическим открытием Excel-файла после экспорта всё экспортится нормально, Excel открывается - но приложение виснет наглухо. У окна предпросмотра заголовок неактивный (серый), ни на чем не кликается, только снимается таскманагером. В Delphi7 такого не было. Проявляется на самых разных отчетах, и нерегулярно (на одном и том же отчете может три раза нормально отработать, а на четвертый раз повиснуть).
Комментарии
запусти под 2000 - такого не должно быть..
ИМНО рано еще переходить на следующую платформу глюкавая она.
Закомментил в трех местах в TfrxPreviewPages.Export Report.InternalOnProgress,Report.InternalOnProgressStart, Report.InternalOnProgressStop и всё заработало. Кстати, аналогичная хрень у меня была при портировании FR253 под D2005
А разбираться, почему под D7 эдак, а под D2005 так - лень. Ну не будет окошка с прогрессом, и фиг с ним - разработчики потом пофиксят ))))))
procedure TfrxProgress.FormCreate(Sender: TObject);
begin
...
FActiveForm := Screen.ActiveForm;
if FActiveForm <> nil then FActiveForm.Enabled := False;
...
end;
procedure TfrxProgress.FormHide(Sender: TObject);
begin
if FActiveForm <> nil then FActiveForm.Enabled := True;
end;
Смотрим в исходники VCL 2005:
procedure TCustomForm.DoHide;
begin
if Assigned(FOnHide) then FOnHide(Self);
end;
Этот самый DoHide присутствует только в TCustomForm.CMShowingChanged; и финальный аккорд от дядьки Борланда:
procedure TCustomForm.BeforeDestruction;
begin
GlobalNameSpace.BeginWrite;
Destroying;
Screen.FSaveFocusedList.Remove(Self);
RemoveFixupReferences(Self, '');
if FOleForm <> nil then FOleForm.OnDestroy;
if FormStyle <> fsMDIChild then Hide;
if not OldCreateOrder then DoDestroy;
end;
Сдублировал код TfrxProgress.FormHide в TfrxProgress.FormDestroy - заработало...