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;