RxMDI - fix CloseAll

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2790 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2013-09-10 13:53:45 +00:00
parent 6760f1a5bc
commit 8d94f194a8
2 changed files with 37 additions and 20 deletions

View File

@@ -38,6 +38,9 @@ interface
uses uses
Classes, SysUtils, LResources, LazarusPackageIntf; Classes, SysUtils, LResources, LazarusPackageIntf;
const
RxCtrllPageName = 'RX Controls';
procedure Register; procedure Register;
implementation implementation
@@ -114,106 +117,106 @@ end;
{$IFDEF USE_TRxAppIcon} {$IFDEF USE_TRxAppIcon}
procedure RegisterRxAppIcon; procedure RegisterRxAppIcon;
begin begin
RegisterComponents('RX',[TRxAppIcon]); RegisterComponents(RxCtrllPageName,[TRxAppIcon]);
end; end;
{$ENDIF} {$ENDIF}
{$IFDEF USE_TRXXPManifest} {$IFDEF USE_TRXXPManifest}
procedure RegisterRxXPMan; procedure RegisterRxXPMan;
begin begin
RegisterComponents('RX',[TRXXPManifest]); RegisterComponents(RxCtrllPageName,[TRXXPManifest]);
end; end;
{$ENDIF} {$ENDIF}
procedure RegisterPageMngr; procedure RegisterPageMngr;
begin begin
RegisterComponents('RX',[TPageManager]); RegisterComponents(RxCtrllPageName,[TPageManager]);
end; end;
procedure RegisterDualList; procedure RegisterDualList;
begin begin
RegisterComponents('RX',[TDualListDialog]); RegisterComponents(RxCtrllPageName,[TDualListDialog]);
end; end;
procedure RegisterCurrEdit; procedure RegisterCurrEdit;
begin begin
RegisterComponents('RX',[TCurrencyEdit]); RegisterComponents(RxCtrllPageName,[TCurrencyEdit]);
end; end;
procedure RegisterRXSwitch; procedure RegisterRXSwitch;
begin begin
RegisterComponents('RX',[TRxSwitch]); RegisterComponents(RxCtrllPageName,[TRxSwitch]);
end; end;
procedure RegisterRXDice; procedure RegisterRXDice;
begin begin
RegisterComponents('RX',[TRxDice]); RegisterComponents(RxCtrllPageName,[TRxDice]);
end; end;
procedure RegisterFolderLister; procedure RegisterFolderLister;
begin begin
RegisterComponents('RX',[TFolderLister]); RegisterComponents(RxCtrllPageName,[TFolderLister]);
end; end;
procedure RegisterRxToolBar; procedure RegisterRxToolBar;
begin begin
RegisterComponents('RX',[TToolPanel]); RegisterComponents(RxCtrllPageName,[TToolPanel]);
end; end;
procedure RegisterRxCtrls; procedure RegisterRxCtrls;
begin begin
RegisterComponents('RX',[TRxLabel, TSecretPanel, TRxSpeedButton, TRxRadioGroup]); RegisterComponents(RxCtrllPageName,[TRxLabel, TSecretPanel, TRxSpeedButton, TRxRadioGroup]);
end; end;
procedure RegisterChartPanel; procedure RegisterChartPanel;
begin begin
RegisterComponents('RX',[TRxChart]); RegisterComponents(RxCtrllPageName,[TRxChart]);
end; end;
procedure RegisterAutoPanel; procedure RegisterAutoPanel;
begin begin
RegisterComponents('RX',[TAutoPanel]); RegisterComponents(RxCtrllPageName,[TAutoPanel]);
end; end;
procedure RegisterPickDate; procedure RegisterPickDate;
begin begin
RegisterComponents('RX',[TRxCalendarGrid]); RegisterComponents(RxCtrllPageName,[TRxCalendarGrid]);
end; end;
procedure RegisterToolEdit; procedure RegisterToolEdit;
begin begin
RegisterComponents('RX',[TRxDateEdit]); RegisterComponents(RxCtrllPageName,[TRxDateEdit]);
end; end;
procedure RegisterRxClock; procedure RegisterRxClock;
begin begin
RegisterComponents('RX',[TRxClock]); RegisterComponents(RxCtrllPageName,[TRxClock]);
end; end;
procedure RegisterRxSpin; procedure RegisterRxSpin;
begin begin
RegisterComponents('RX',[TRxSpinButton, TRxSpinEdit]); RegisterComponents(RxCtrllPageName,[TRxSpinButton, TRxSpinEdit]);
end; end;
procedure RegisterRxTimeEdit; procedure RegisterRxTimeEdit;
begin begin
RegisterComponents('RX',[TRxTimeEdit]); RegisterComponents(RxCtrllPageName,[TRxTimeEdit]);
end; end;
procedure RegisterRxAboutDialog; procedure RegisterRxAboutDialog;
begin begin
RegisterComponents('RX',[TRxAboutDialog]); RegisterComponents(RxCtrllPageName,[TRxAboutDialog]);
end; end;
procedure RegisterRxViewsPanel; procedure RegisterRxViewsPanel;
begin begin
RegisterComponents('RX',[TRxViewsPanel]); RegisterComponents(RxCtrllPageName,[TRxViewsPanel]);
end; end;
procedure RegisterRxMDI; procedure RegisterRxMDI;
begin begin
RegisterComponents('RX',[TRxMDICloseButton, TRxMDIPanel, TRxMDITasks]); RegisterComponents(RxCtrllPageName,[TRxMDICloseButton, TRxMDIPanel, TRxMDITasks]);
end; end;
procedure RegisterRxHistoryNavigator; procedure RegisterRxHistoryNavigator;

View File

@@ -143,6 +143,7 @@ type
implementation implementation
uses LResources, vclutils, rxconst; uses LResources, vclutils, rxconst;
// LCLProc;
{ TRxMDICloseButton } { TRxMDICloseButton }
@@ -465,7 +466,16 @@ end;
procedure TRxMDITasks.ChildWindowsShowLast; procedure TRxMDITasks.ChildWindowsShowLast;
var var
CC:TControl; CC:TControl;
i:integer;
begin begin
{
DebugLn(['FMainPanel.ControlCount = ', FMainPanel.ControlCount]);
for i:=0 to FMainPanel.ControlCount-1 do
DebugLn(['FMainPanel.Controls[',i,'].Name = ', FMainPanel.Controls[i].Name]);
}
if (FMainPanel.ControlCount>1) then if (FMainPanel.ControlCount>1) then
begin begin
CC:=FMainPanel.Controls[FMainPanel.ControlCount-2]; CC:=FMainPanel.Controls[FMainPanel.ControlCount-2];
@@ -481,6 +491,8 @@ procedure TRxMDITasks.DoCloseAll(AIgnoreBtn: TRxMDIButton);
var var
i:integer; i:integer;
begin begin
// DebugLn('DoCloseAll');
for i:=ComponentCount-1 downto 0 do for i:=ComponentCount-1 downto 0 do
begin begin
if (Components[i] is TRxMDIButton) and (TRxMDIButton(Components[i]) <> AIgnoreBtn) then if (Components[i] is TRxMDIButton) and (TRxMDIButton(Components[i]) <> AIgnoreBtn) then
@@ -660,6 +672,7 @@ procedure TRxMDIButton.DoCloseMenu(Sender: TObject);
begin begin
if Assigned(FNavForm) then if Assigned(FNavForm) then
FNavForm.Close; FNavForm.Close;
Application.ProcessMessages;
end; end;
procedure TRxMDIButton.DoCloseAllMenu(Sender: TObject); procedure TRxMDIButton.DoCloseAllMenu(Sender: TObject);
@@ -707,6 +720,7 @@ begin
FNavPanel.ChildWindowsShowLast; FNavPanel.ChildWindowsShowLast;
FNavPanel.ShowHiddenBtnOnResize; FNavPanel.ShowHiddenBtnOnResize;
CloseAction:=caFree; CloseAction:=caFree;
Owner.RemoveComponent(Self);
Free; Free;
end; end;