diff --git a/components/rx/trunk/demos/RxMDI/unit1.lfm b/components/rx/trunk/demos/RxMDI/unit1.lfm index b43f5c265..693448b5a 100644 --- a/components/rx/trunk/demos/RxMDI/unit1.lfm +++ b/components/rx/trunk/demos/RxMDI/unit1.lfm @@ -13,15 +13,31 @@ object Form1: TForm1 WindowState = wsMaximized object ToolPanel1: TToolPanel Left = 0 - Height = 31 + Height = 32 Top = 0 Width = 613 - Items = <> + Items = < + item + Action = Action1 + Visible = True + ShowCaption = True + end + item + Action = Action2 + Visible = True + ShowCaption = True + end + item + Action = Action3 + Visible = True + ShowCaption = True + end> + ToolBarStyle = tbsNative Options = [] CustomizeShortCut = False Align = alTop BorderWidth = 4 - ClientHeight = 31 + ClientHeight = 32 ClientWidth = 613 TabOrder = 0 object RxMDICloseButton1: TRxMDICloseButton @@ -31,7 +47,7 @@ object Form1: TForm1 AnchorSideRight.Side = asrBottom Left = 585 Height = 22 - Top = 4 + Top = 5 Width = 23 Anchors = [akTop, akRight] Glyph.Data = { @@ -81,8 +97,8 @@ object Form1: TForm1 end object RxMDIPanel1: TRxMDIPanel Left = 0 - Height = 333 - Top = 31 + Height = 332 + Top = 32 Width = 613 CloseButton = RxMDICloseButton1 TaskPanel = RxMDITasks1 diff --git a/components/rx/trunk/demos/RxMDI/unit4.lfm b/components/rx/trunk/demos/RxMDI/unit4.lfm index 5ccc0ac69..b85e68dba 100644 --- a/components/rx/trunk/demos/RxMDI/unit4.lfm +++ b/components/rx/trunk/demos/RxMDI/unit4.lfm @@ -47,7 +47,7 @@ object Form4: TForm4 } OnClose = FormClose OnCreate = FormCreate - LCLVersion = '1.1' + LCLVersion = '2.1.0.0' object Panel1: TPanel Left = 0 Height = 50 @@ -58,26 +58,43 @@ object Form4: TForm4 TabOrder = 0 end object Edit1: TEdit - Left = 47 - Height = 25 - Top = 84 - Width = 80 + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Panel1 + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + Left = 6 + Height = 31 + Top = 56 + Width = 608 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 TabOrder = 1 Text = 'Edit1' end object Edit2: TEdit - Left = 43 - Height = 25 - Top = 154 + AnchorSideLeft.Control = Owner + AnchorSideLeft.Side = asrCenter + AnchorSideTop.Control = Edit1 + AnchorSideTop.Side = asrBottom + Left = 270 + Height = 31 + Top = 93 Width = 80 + BorderSpacing.Around = 6 TabOrder = 2 Text = 'Edit2' end object Edit3: TEdit - Left = 45 - Height = 25 - Top = 215 + AnchorSideLeft.Control = Owner + AnchorSideLeft.Side = asrCenter + AnchorSideTop.Control = Edit2 + AnchorSideTop.Side = asrBottom + Left = 270 + Height = 31 + Top = 130 Width = 80 + BorderSpacing.Around = 6 TabOrder = 3 Text = 'Edit3' end diff --git a/components/rx/trunk/demos/RxMDI/unit4.pas b/components/rx/trunk/demos/RxMDI/unit4.pas index 31d3c6017..c2e72d1c1 100644 --- a/components/rx/trunk/demos/RxMDI/unit4.pas +++ b/components/rx/trunk/demos/RxMDI/unit4.pas @@ -43,6 +43,7 @@ begin Inc(CntMM); Panel1.Caption:=Panel1.Caption + IntToStr(CntMM); Caption:=Panel1.Caption; + Edit1.Text:=IntToStr(CntMM); end; end. diff --git a/components/rx/trunk/docs/rxcloseformvalidator.xml b/components/rx/trunk/docs/rxcloseformvalidator.xml index 6825536de..6d1d1bf47 100644 --- a/components/rx/trunk/docs/rxcloseformvalidator.xml +++ b/components/rx/trunk/docs/rxcloseformvalidator.xml @@ -18,7 +18,8 @@ Список элементов проверки введённых данных Признак того, что запрещённые контролы проверки не подлежат - Метод возвращает проверяемый элемент по указанному контролуПрменяется при ручном управлении включением/выключением проведения проверок + Метод возвращает проверяемый элемент по указанному контролуПрменяется при ручном управлении включением/выключением проведения проверок + diff --git a/components/rx/trunk/rxcontrols/rxmdi.pas b/components/rx/trunk/rxcontrols/rxmdi.pas index e30c3bc8d..ae2865d1f 100644 --- a/components/rx/trunk/rxcontrols/rxmdi.pas +++ b/components/rx/trunk/rxcontrols/rxmdi.pas @@ -97,6 +97,7 @@ type procedure ShowHiddenBtnOnResize; procedure ChildWindowsShowLast; procedure DoCloseAll(AIgnoreBtn:TRxMDIButton); + procedure ShowMDIButton(Btn:TRxMDIButton); protected procedure Paint; override; procedure Resize; override; @@ -689,7 +690,7 @@ var i:Integer; B:TRxMDIButton; begin - for i:=0 to ComponentCount-1 do + for I:=ComponentCount-1 downto 0 do begin if (Components[i] is TRxMDIButton) then begin @@ -769,6 +770,78 @@ begin FMainPanel.CurrentChildWindow:=AIgnoreBtn.FNavForm; end; +procedure TRxMDITasks.ShowMDIButton(Btn: TRxMDIButton); +var + B: TRxMDIButton; + i, W, K: Integer; +begin + Exit; + if (not Assigned(Btn)) or (Btn.Parent <> Self) then Exit; + + if not Btn.Visible then + begin + for i:=ComponentCount-1 downto 0 do + begin + if (Components[i] is TRxMDIButton) then + begin + B:=TRxMDIButton(Components[i]); + if not B.Visible then + begin + B.Visible:=true; + B.Left:=FBtnScrollLeft.Width; + if B = Btn then + break; + end; + end; + end; + end + else + begin + W:=FBtnScrollLeft.Width; + K:=Btn.ComponentIndex; + for I:=0 to K do + begin + if (Components[i] is TRxMDIButton) then + begin + B:=TRxMDIButton(Components[i]); + W:=W + B.Width; + end; + end; + + if W > Width then + begin + W:=Width - FBtnScrollLeft.Width; + K:=0; + for i:=Btn.ComponentIndex downto 0 do + begin + if (Components[i] is TRxMDIButton) then + begin + B:=TRxMDIButton(Components[i]); + W:=W - B.Width; + if W < 0 then + begin + K:=i; + break; + end; + end; + end; + + if K>0 then + begin + for i:=0 to K - 1 do + begin + if (Components[i] is TRxMDIButton) then + begin + B:=TRxMDIButton(Components[i]); + B.Visible:=false; + end; + + end; + end; + end; + end; +end; + procedure TRxMDITasks.Paint; var i:integer; @@ -1123,6 +1196,9 @@ begin FNavPanel.FMainPanel.DoOnChangeCurrentChild(FNavForm); end; Down:=true; + + if Assigned(FNavPanel) then + FNavPanel.ShowMDIButton(Self); FNavPanel.FMainPanel.RefreshMDIMenu; end; diff --git a/components/rx/trunk/rxdb/rxdbgrid.pas b/components/rx/trunk/rxdb/rxdbgrid.pas index 7d2085d86..ec157bc5e 100644 --- a/components/rx/trunk/rxdb/rxdbgrid.pas +++ b/components/rx/trunk/rxdb/rxdbgrid.pas @@ -1143,6 +1143,7 @@ type property OnRxCalcFooterValues: TOnRxCalcFooterValues read FOnRxCalcFooterValues write FOnRxCalcFooterValues; property OnRxColumnFooterDraw: TOnRxColumnFooterDraw read FOnRxColumnFooterDraw write FOnRxColumnFooterDraw; property OnUserCheckboxBitmap; + property OnUserCheckboxImage; property OnUserCheckboxState; property OnUTF8KeyPress;