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

View File

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