RxFPC:fix RxMDI button orders, publish property RxDBGird.OnUserCheckboxImage

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6827 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2019-03-06 05:44:57 +00:00
parent 59b8fabd5b
commit 26134ac4fc
6 changed files with 131 additions and 19 deletions

View File

@ -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

View File

@ -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

View File

@ -43,6 +43,7 @@ begin
Inc(CntMM);
Panel1.Caption:=Panel1.Caption + IntToStr(CntMM);
Caption:=Panel1.Caption;
Edit1.Text:=IntToStr(CntMM);
end;
end.

View File

@ -18,7 +18,8 @@
</element><element name="TRxCloseFormValidator.Items"><short>Список элементов проверки введённых данных</short>
</element><element name="TRxCloseFormValidator.IgnoreDisabled"><short>Признак того, что запрещённые контролы проверки не подлежат </short>
</element>
<element name="TRxCloseFormValidator.ByControl"><short>Метод возвращает проверяемый элемент по указанному контролу</short><descr>Прменяется при ручном управлении включением/выключением проведения проверок</descr>
<element name="TRxCloseFormValidator.ByControl"><short>Метод возвращает проверяемый элемент по указанному контролу</short><descr>Прменяется при ручном управлении включением/выключением проведения проверок
</descr>
</element>
</module>
</package>

View File

@ -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;

View File

@ -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;