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 WindowState = wsMaximized
object ToolPanel1: TToolPanel object ToolPanel1: TToolPanel
Left = 0 Left = 0
Height = 31 Height = 32
Top = 0 Top = 0
Width = 613 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 = [] Options = []
CustomizeShortCut = False CustomizeShortCut = False
Align = alTop Align = alTop
BorderWidth = 4 BorderWidth = 4
ClientHeight = 31 ClientHeight = 32
ClientWidth = 613 ClientWidth = 613
TabOrder = 0 TabOrder = 0
object RxMDICloseButton1: TRxMDICloseButton object RxMDICloseButton1: TRxMDICloseButton
@ -31,7 +47,7 @@ object Form1: TForm1
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 585 Left = 585
Height = 22 Height = 22
Top = 4 Top = 5
Width = 23 Width = 23
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
Glyph.Data = { Glyph.Data = {
@ -81,8 +97,8 @@ object Form1: TForm1
end end
object RxMDIPanel1: TRxMDIPanel object RxMDIPanel1: TRxMDIPanel
Left = 0 Left = 0
Height = 333 Height = 332
Top = 31 Top = 32
Width = 613 Width = 613
CloseButton = RxMDICloseButton1 CloseButton = RxMDICloseButton1
TaskPanel = RxMDITasks1 TaskPanel = RxMDITasks1

View File

@ -47,7 +47,7 @@ object Form4: TForm4
} }
OnClose = FormClose OnClose = FormClose
OnCreate = FormCreate OnCreate = FormCreate
LCLVersion = '1.1' LCLVersion = '2.1.0.0'
object Panel1: TPanel object Panel1: TPanel
Left = 0 Left = 0
Height = 50 Height = 50
@ -58,26 +58,43 @@ object Form4: TForm4
TabOrder = 0 TabOrder = 0
end end
object Edit1: TEdit object Edit1: TEdit
Left = 47 AnchorSideLeft.Control = Owner
Height = 25 AnchorSideTop.Control = Panel1
Top = 84 AnchorSideTop.Side = asrBottom
Width = 80 AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 6
Height = 31
Top = 56
Width = 608
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
TabOrder = 1 TabOrder = 1
Text = 'Edit1' Text = 'Edit1'
end end
object Edit2: TEdit object Edit2: TEdit
Left = 43 AnchorSideLeft.Control = Owner
Height = 25 AnchorSideLeft.Side = asrCenter
Top = 154 AnchorSideTop.Control = Edit1
AnchorSideTop.Side = asrBottom
Left = 270
Height = 31
Top = 93
Width = 80 Width = 80
BorderSpacing.Around = 6
TabOrder = 2 TabOrder = 2
Text = 'Edit2' Text = 'Edit2'
end end
object Edit3: TEdit object Edit3: TEdit
Left = 45 AnchorSideLeft.Control = Owner
Height = 25 AnchorSideLeft.Side = asrCenter
Top = 215 AnchorSideTop.Control = Edit2
AnchorSideTop.Side = asrBottom
Left = 270
Height = 31
Top = 130
Width = 80 Width = 80
BorderSpacing.Around = 6
TabOrder = 3 TabOrder = 3
Text = 'Edit3' Text = 'Edit3'
end end

View File

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

View File

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

View File

@ -97,6 +97,7 @@ type
procedure ShowHiddenBtnOnResize; procedure ShowHiddenBtnOnResize;
procedure ChildWindowsShowLast; procedure ChildWindowsShowLast;
procedure DoCloseAll(AIgnoreBtn:TRxMDIButton); procedure DoCloseAll(AIgnoreBtn:TRxMDIButton);
procedure ShowMDIButton(Btn:TRxMDIButton);
protected protected
procedure Paint; override; procedure Paint; override;
procedure Resize; override; procedure Resize; override;
@ -689,7 +690,7 @@ var
i:Integer; i:Integer;
B:TRxMDIButton; B:TRxMDIButton;
begin begin
for i:=0 to ComponentCount-1 do for I:=ComponentCount-1 downto 0 do
begin begin
if (Components[i] is TRxMDIButton) then if (Components[i] is TRxMDIButton) then
begin begin
@ -769,6 +770,78 @@ begin
FMainPanel.CurrentChildWindow:=AIgnoreBtn.FNavForm; FMainPanel.CurrentChildWindow:=AIgnoreBtn.FNavForm;
end; 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; procedure TRxMDITasks.Paint;
var var
i:integer; i:integer;
@ -1123,6 +1196,9 @@ begin
FNavPanel.FMainPanel.DoOnChangeCurrentChild(FNavForm); FNavPanel.FMainPanel.DoOnChangeCurrentChild(FNavForm);
end; end;
Down:=true; Down:=true;
if Assigned(FNavPanel) then
FNavPanel.ShowMDIButton(Self);
FNavPanel.FMainPanel.RefreshMDIMenu; FNavPanel.FMainPanel.RefreshMDIMenu;
end; end;

View File

@ -1143,6 +1143,7 @@ type
property OnRxCalcFooterValues: TOnRxCalcFooterValues read FOnRxCalcFooterValues write FOnRxCalcFooterValues; property OnRxCalcFooterValues: TOnRxCalcFooterValues read FOnRxCalcFooterValues write FOnRxCalcFooterValues;
property OnRxColumnFooterDraw: TOnRxColumnFooterDraw read FOnRxColumnFooterDraw write FOnRxColumnFooterDraw; property OnRxColumnFooterDraw: TOnRxColumnFooterDraw read FOnRxColumnFooterDraw write FOnRxColumnFooterDraw;
property OnUserCheckboxBitmap; property OnUserCheckboxBitmap;
property OnUserCheckboxImage;
property OnUserCheckboxState; property OnUserCheckboxState;
property OnUTF8KeyPress; property OnUTF8KeyPress;