RxFPC: RxDBVerticalGrid fix row higth on show/hide column title

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6009 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2017-08-24 12:02:25 +00:00
parent 6a67ea6b6d
commit 2b449147e7
4 changed files with 182 additions and 126 deletions

View File

@ -9,7 +9,7 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<CursorPos Y="16"/> <CursorPos Y="16"/>
<UsageCount Value="36"/> <UsageCount Value="37"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
@ -18,10 +18,9 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="Unit1"/> <UnitName Value="Unit1"/>
<IsVisibleTab Value="True"/> <TopLine Value="75"/>
<TopLine Value="73"/> <CursorPos X="5" Y="92"/>
<CursorPos X="70" Y="78"/> <UsageCount Value="37"/>
<UsageCount Value="36"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit1> </Unit1>
@ -34,7 +33,7 @@
</Unit2> </Unit2>
<Unit3> <Unit3>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<EditorIndex Value="4"/> <EditorIndex Value="3"/>
<TopLine Value="4122"/> <TopLine Value="4122"/>
<CursorPos Y="4148"/> <CursorPos Y="4148"/>
<UsageCount Value="18"/> <UsageCount Value="18"/>
@ -43,7 +42,7 @@
<Unit4> <Unit4>
<Filename Value="../../../../lcl/grids.pas"/> <Filename Value="../../../../lcl/grids.pas"/>
<UnitName Value="Grids"/> <UnitName Value="Grids"/>
<EditorIndex Value="5"/> <EditorIndex Value="4"/>
<TopLine Value="985"/> <TopLine Value="985"/>
<CursorPos X="15" Y="1001"/> <CursorPos X="15" Y="1001"/>
<UsageCount Value="15"/> <UsageCount Value="15"/>
@ -176,12 +175,12 @@
</Unit21> </Unit21>
<Unit22> <Unit22>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<EditorIndex Value="6"/> <EditorIndex Value="5"/>
<TopLine Value="1257"/> <TopLine Value="1174"/>
<CursorPos X="31" Y="1281"/> <CursorPos X="9" Y="1194"/>
<UsageCount Value="18"/> <UsageCount Value="18"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="38" Y="913" ID="1"/> <Item0 X="38" Y="914" ID="1"/>
</Bookmarks> </Bookmarks>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit22> </Unit22>
@ -306,7 +305,8 @@
</Unit39> </Unit39>
<Unit40> <Unit40>
<Filename Value="../../rxcontrols/rxlclutils.pas"/> <Filename Value="../../rxcontrols/rxlclutils.pas"/>
<EditorIndex Value="8"/> <IsVisibleTab Value="True"/>
<EditorIndex Value="6"/>
<TopLine Value="743"/> <TopLine Value="743"/>
<CursorPos X="111" Y="772"/> <CursorPos X="111" Y="772"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
@ -492,11 +492,10 @@
</Unit65> </Unit65>
<Unit66> <Unit66>
<Filename Value="../../../../lcl/include/dbimage.inc"/> <Filename Value="../../../../lcl/include/dbimage.inc"/>
<EditorIndex Value="2"/> <EditorIndex Value="-1"/>
<TopLine Value="27"/> <TopLine Value="27"/>
<CursorPos X="3" Y="29"/> <CursorPos X="3" Y="29"/>
<UsageCount Value="11"/> <UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit66> </Unit66>
<Unit67> <Unit67>
<Filename Value="../../../../lcl/include/picture.inc"/> <Filename Value="../../../../lcl/include/picture.inc"/>
@ -508,7 +507,7 @@
<Unit68> <Unit68>
<Filename Value="../../../../lcl/extctrls.pp"/> <Filename Value="../../../../lcl/extctrls.pp"/>
<UnitName Value="ExtCtrls"/> <UnitName Value="ExtCtrls"/>
<EditorIndex Value="3"/> <EditorIndex Value="2"/>
<TopLine Value="494"/> <TopLine Value="494"/>
<CursorPos X="6" Y="504"/> <CursorPos X="6" Y="504"/>
<UsageCount Value="11"/> <UsageCount Value="11"/>
@ -538,133 +537,132 @@
<Unit72> <Unit72>
<Filename Value="/home/install/source/fpcsrc/rtl/objpas/types.pp"/> <Filename Value="/home/install/source/fpcsrc/rtl/objpas/types.pp"/>
<UnitName Value="Types"/> <UnitName Value="Types"/>
<EditorIndex Value="7"/> <EditorIndex Value="-1"/>
<TopLine Value="313"/> <TopLine Value="313"/>
<CursorPos X="10" Y="331"/> <CursorPos X="10" Y="331"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit72> </Unit72>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="194" Column="15" TopLine="176"/> <Caret Line="102" Column="54" TopLine="91"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="958" Column="3" TopLine="954"/> <Caret Line="104" Column="54" TopLine="93"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="207" Column="15" TopLine="176"/> <Caret Line="106" TopLine="92"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="1049" Column="3" TopLine="1046"/> <Caret Line="57" Column="15" TopLine="38"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="252" Column="15" TopLine="224"/> <Caret Line="1457" Column="21" TopLine="1439"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="414" Column="3" TopLine="412"/> <Caret Line="302" TopLine="282"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="294" Column="15" TopLine="275"/> <Caret Line="1372" Column="3" TopLine="1364"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="1182" Column="11" TopLine="1171"/> <Caret Line="301" Column="15" TopLine="284"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="303" Column="28" TopLine="275"/> <Caret Line="1308" Column="3" TopLine="1293"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="1462" Column="3" TopLine="1430"/> <Caret Line="300" Column="15" TopLine="283"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="102" Column="54" TopLine="91"/> <Caret Line="100" Column="5" TopLine="73"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="1483" Column="19" TopLine="1446"/> <Caret Line="345" Column="14" TopLine="327"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="299" Column="15" TopLine="287"/> <Caret Line="316" Column="14" TopLine="298"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="1209" Column="3" TopLine="1203"/> <Caret Line="291" Column="15" TopLine="271"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="300" Column="15" TopLine="281"/> <Caret Line="1585" Column="3" TopLine="1581"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="1265" Column="3" TopLine="1257"/> <Caret Line="293" Column="15" TopLine="272"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="../../rxcontrols/rxlclutils.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="100" Column="11" TopLine="81"/> <Caret Line="1168" Column="3" TopLine="1166"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="1265" Column="3" TopLine="1257"/> <Caret Line="222" Column="15" TopLine="207"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="303" Column="15" TopLine="282"/> <Caret Line="189" Column="15" TopLine="172"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="1457" Column="19" TopLine="1444"/> <Caret Line="903" Column="3" TopLine="897"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="unit1.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="102" Column="54" TopLine="91"/> <Caret Line="294" Column="15" TopLine="275"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="unit1.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="104" Column="54" TopLine="93"/> <Caret Line="1173" Column="3" TopLine="1171"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="unit1.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="106" TopLine="92"/> <Caret Line="295" Column="31" TopLine="275"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="unit1.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="57" Column="15" TopLine="38"/> <Caret Line="1188" Column="18" TopLine="1185"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="1457" Column="21" TopLine="1439"/> <Caret Line="1185" Column="35" TopLine="1169"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="302" TopLine="282"/> <Caret Line="314" Column="15" TopLine="295"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="1372" Column="3" TopLine="1364"/> <Caret Line="291" Column="15" TopLine="272"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="../../rxdb/rxdbverticalgrid.pas"/>
<Caret Line="301" Column="15" TopLine="284"/> <Caret Line="1613" Column="19" TopLine="1594"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="1308" Column="3" TopLine="1293"/> <Caret Line="100" Column="5" TopLine="73"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="../../rxdb/rxdbverticalgrid.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="300" Column="15" TopLine="283"/> <Caret Line="101" Column="5" TopLine="74"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
</ProjectSession> </ProjectSession>

View File

@ -7,12 +7,14 @@ object Form1: TForm1
ClientHeight = 749 ClientHeight = 749
ClientWidth = 1206 ClientWidth = 1206
OnCreate = FormCreate OnCreate = FormCreate
Position = poScreenCenter
LCLVersion = '1.9.0.0' LCLVersion = '1.9.0.0'
object RxDBVerticalGrid1: TRxDBVerticalGrid object RxDBVerticalGrid1: TRxDBVerticalGrid
Left = 440 Left = 899
Height = 416 Height = 642
Top = 328 Top = 107
Width = 728 Width = 307
Align = alClient
Color = clWindow Color = clWindow
GridDefValues.BlobText = '(данные)' GridDefValues.BlobText = '(данные)'
DataCoumn.Title.Alignment = taCenter DataCoumn.Title.Alignment = taCenter
@ -168,10 +170,10 @@ object Form1: TForm1
) )
end end
object RxDBGrid1: TRxDBGrid object RxDBGrid1: TRxDBGrid
Left = 40 Left = 0
Height = 312 Height = 642
Top = 8 Top = 107
Width = 1080 Width = 894
ColumnDefValues.BlobText = '(данные)' ColumnDefValues.BlobText = '(данные)'
TitleButtons = False TitleButtons = False
AutoSort = True AutoSort = True
@ -353,6 +355,7 @@ object Form1: TForm1
SearchOptions.QuickSearchOptions = [loCaseInsensitive, loPartialKey] SearchOptions.QuickSearchOptions = [loCaseInsensitive, loPartialKey]
SearchOptions.FromStart = False SearchOptions.FromStart = False
OptionsRx = [rdgAllowColumnsForm, rdgAllowDialogFind, rdgAllowQuickFilter] OptionsRx = [rdgAllowColumnsForm, rdgAllowDialogFind, rdgAllowQuickFilter]
Align = alLeft
Color = clWindow Color = clWindow
DrawFullLine = False DrawFullLine = False
FocusColor = clRed FocusColor = clRed
@ -363,69 +366,106 @@ object Form1: TForm1
TabOrder = 1 TabOrder = 1
TitleStyle = tsNative TitleStyle = tsNative
end end
object Button1: TButton object Panel1: TPanel
Left = 208 Left = 0
Height = 36 Height = 107
Top = 430 Top = 0
Width = 80 Width = 1206
Align = alTop
AutoSize = True AutoSize = True
Caption = 'Diconnect' ClientHeight = 107
OnClick = Button1Click ClientWidth = 1206
TabOrder = 2 TabOrder = 2
object Button1: TButton
AnchorSideLeft.Control = Panel1
AnchorSideTop.Control = Panel1
Left = 7
Height = 36
Top = 7
Width = 80
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Diconnect'
OnClick = Button1Click
TabOrder = 0
end
object Button2: TButton
AnchorSideLeft.Control = Button1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel1
Left = 93
Height = 36
Top = 7
Width = 69
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Connect'
OnClick = Button2Click
TabOrder = 1
end
object RadioGroup1: TRadioGroup
AnchorSideLeft.Control = Button2
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel1
Left = 168
Height = 93
Top = 7
Width = 83
AutoFill = True
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Image align'
ChildSizing.LeftRightSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 72
ClientWidth = 81
ItemIndex = 0
Items.Strings = (
'Left'
'Rigth'
'Center'
)
OnClick = CheckBox1Change
TabOrder = 2
end
object CheckBox2: TCheckBox
AnchorSideLeft.Control = RadioGroup1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = CheckBox1
AnchorSideTop.Side = asrBottom
Left = 257
Height = 24
Top = 37
Width = 111
BorderSpacing.Around = 6
Caption = 'Show images'
OnChange = CheckBox1Change
TabOrder = 3
end
object CheckBox1: TCheckBox
AnchorSideLeft.Control = RadioGroup1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel1
Left = 257
Height = 24
Top = 7
Width = 110
BorderSpacing.Around = 6
Caption = 'Show header'
OnChange = CheckBox1Change
TabOrder = 4
end
end end
object Button2: TButton object Splitter1: TSplitter
Left = 208 Left = 894
Height = 36 Height = 642
Top = 472 Top = 107
Width = 69 Width = 5
AutoSize = True
Caption = 'Connect'
OnClick = Button2Click
TabOrder = 3
end
object CheckBox1: TCheckBox
Left = 28
Height = 24
Top = 341
Width = 110
Caption = 'Show header'
OnChange = CheckBox1Change
TabOrder = 4
end
object RadioGroup1: TRadioGroup
Left = 24
Height = 93
Top = 400
Width = 83
AutoFill = True
AutoSize = True
Caption = 'Image align'
ChildSizing.LeftRightSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 72
ClientWidth = 81
ItemIndex = 0
Items.Strings = (
'Left'
'Rigth'
'Center'
)
OnClick = CheckBox1Change
TabOrder = 5
end
object CheckBox2: TCheckBox
Left = 28
Height = 24
Top = 368
Width = 111
Caption = 'Show images'
OnChange = CheckBox1Change
TabOrder = 6
end end
object dsData: TDataSource object dsData: TDataSource
DataSet = rxData DataSet = rxData

View File

@ -32,6 +32,7 @@ type
MenuItem7: TMenuItem; MenuItem7: TMenuItem;
MenuItem8: TMenuItem; MenuItem8: TMenuItem;
MenuItem9: TMenuItem; MenuItem9: TMenuItem;
Panel1: TPanel;
PopupMenu1: TPopupMenu; PopupMenu1: TPopupMenu;
PopupMenu2: TPopupMenu; PopupMenu2: TPopupMenu;
PopupMenu3: TPopupMenu; PopupMenu3: TPopupMenu;
@ -51,6 +52,7 @@ type
RxDBGrid1: TRxDBGrid; RxDBGrid1: TRxDBGrid;
RxDBVerticalGrid1: TRxDBVerticalGrid; RxDBVerticalGrid1: TRxDBVerticalGrid;
rxData: TRxMemoryData; rxData: TRxMemoryData;
Splitter1: TSplitter;
procedure Button1Click(Sender: TObject); procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject); procedure Button2Click(Sender: TObject);
procedure CheckBox1Change(Sender: TObject); procedure CheckBox1Change(Sender: TObject);

View File

@ -292,6 +292,7 @@ type
procedure SetRows(AValue: TRxDBVerticalGridRows); procedure SetRows(AValue: TRxDBVerticalGridRows);
procedure RecordChanged; procedure RecordChanged;
procedure RowsChanged(aRow: TRxDBVerticalGridRow); procedure RowsChanged(aRow: TRxDBVerticalGridRow);
procedure UpdateRowsHight;
protected protected
procedure OutCaptionCellText(aCol, aRow: integer; const aRect: TRect; procedure OutCaptionCellText(aCol, aRow: integer; const aRect: TRect;
aState: TGridDrawState; const ACaption: string); aState: TGridDrawState; const ACaption: string);
@ -1181,6 +1182,19 @@ begin
end; end;
end; end;
procedure TRxCustomDBVerticalGrid.UpdateRowsHight;
var
R: TRxDBVerticalGridRow;
i: Integer;
begin
for R in Rows do
RowHeights[R.Index + FixedRows]:=R.RowHeight;
if FixedRows > 0 then
for i:=0 to FixedRows-1 do
RowHeights[i]:=DefaultRowHeight;
end;
procedure TRxCustomDBVerticalGrid.OutCaptionCellText(aCol, aRow: integer; procedure TRxCustomDBVerticalGrid.OutCaptionCellText(aCol, aRow: integer;
const aRect: TRect; aState: TGridDrawState; const ACaption: string); const aRect: TRect; aState: TGridDrawState; const ACaption: string);
begin begin
@ -1596,6 +1610,8 @@ begin
RowCount:=RowCount - 1; RowCount:=RowCount - 1;
FixedRows:=0; FixedRows:=0;
end; end;
UpdateRowsHight;
end; end;
function TRxCustomDBVerticalGrid.GetDataSource: TDataSource; function TRxCustomDBVerticalGrid.GetDataSource: TDataSource;