fpspreadsheet: Fix TsWorksheetGrid header ignoring FixedColor setting for non-native TitleStyle.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3127 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz 2014-06-02 08:52:37 +00:00
parent b095079e91
commit e6ad481905
3 changed files with 117 additions and 30 deletions

View File

@ -4,7 +4,7 @@ object Form1: TForm1
Top = 193 Top = 193
Width = 884 Width = 884
Caption = 'fpsGrid' Caption = 'fpsGrid'
ClientHeight = 629 ClientHeight = 624
ClientWidth = 884 ClientWidth = 884
Menu = MainMenu Menu = MainMenu
OnActivate = FormActivate OnActivate = FormActivate
@ -14,7 +14,7 @@ object Form1: TForm1
object Panel1: TPanel object Panel1: TPanel
Left = 0 Left = 0
Height = 85 Height = 85
Top = 544 Top = 539
Width = 884 Width = 884
Align = alBottom Align = alBottom
BevelOuter = bvNone BevelOuter = bvNone
@ -23,9 +23,9 @@ object Form1: TForm1
TabOrder = 0 TabOrder = 0
object CbShowHeaders: TCheckBox object CbShowHeaders: TCheckBox
Left = 8 Left = 8
Height = 19 Height = 24
Top = 8 Top = 8
Width = 93 Width = 116
Caption = 'Show headers' Caption = 'Show headers'
Checked = True Checked = True
OnClick = CbShowHeadersClick OnClick = CbShowHeadersClick
@ -34,9 +34,9 @@ object Form1: TForm1
end end
object CbShowGridLines: TCheckBox object CbShowGridLines: TCheckBox
Left = 8 Left = 8
Height = 19 Height = 24
Top = 32 Top = 32
Width = 100 Width = 125
Caption = 'Show grid lines' Caption = 'Show grid lines'
Checked = True Checked = True
OnClick = CbShowGridLinesClick OnClick = CbShowGridLinesClick
@ -44,52 +44,69 @@ object Form1: TForm1
TabOrder = 1 TabOrder = 1
end end
object EdFrozenCols: TSpinEdit object EdFrozenCols: TSpinEdit
Left = 238 Left = 550
Height = 23 Height = 28
Top = 8 Top = 8
Width = 52 Width = 52
OnChange = EdFrozenColsChange OnChange = EdFrozenColsChange
TabOrder = 2 TabOrder = 2
end end
object EdFrozenRows: TSpinEdit object EdFrozenRows: TSpinEdit
Left = 238 Left = 550
Height = 23 Height = 28
Top = 39 Top = 39
Width = 52 Width = 52
OnChange = EdFrozenRowsChange OnChange = EdFrozenRowsChange
TabOrder = 3 TabOrder = 3
end end
object Label1: TLabel object Label1: TLabel
Left = 152 Left = 464
Height = 15 Height = 20
Top = 13 Top = 13
Width = 62 Width = 77
Caption = 'Frozen cols:' Caption = 'Frozen cols:'
FocusControl = EdFrozenCols FocusControl = EdFrozenCols
ParentColor = False ParentColor = False
end end
object Label2: TLabel object Label2: TLabel
Left = 153 Left = 465
Height = 15 Height = 20
Top = 40 Top = 40
Width = 66 Width = 82
Caption = 'Frozen rows:' Caption = 'Frozen rows:'
FocusControl = EdFrozenRows FocusControl = EdFrozenRows
ParentColor = False ParentColor = False
end end
object CbReadFormulas: TCheckBox object CbReadFormulas: TCheckBox
Left = 8 Left = 8
Height = 19 Height = 24
Top = 56 Top = 56
Width = 96 Width = 120
Caption = 'Read formulas' Caption = 'Read formulas'
OnChange = CbReadFormulasChange OnChange = CbReadFormulasChange
TabOrder = 4 TabOrder = 4
end end
object CbHeaderStyle: TComboBox
Left = 152
Height = 28
Top = 8
Width = 116
ItemHeight = 20
ItemIndex = 2
Items.Strings = (
'Lazarus'
'Standard'
'Native'
)
OnChange = CbHeaderStyleChange
Style = csDropDownList
TabOrder = 5
Text = 'Native'
end
end end
object PageControl1: TPageControl object PageControl1: TPageControl
Left = 0 Left = 0
Height = 465 Height = 460
Top = 79 Top = 79
Width = 884 Width = 884
ActivePage = TabSheet1 ActivePage = TabSheet1
@ -99,27 +116,52 @@ object Form1: TForm1
OnChange = PageControl1Change OnChange = PageControl1Change
object TabSheet1: TTabSheet object TabSheet1: TTabSheet
Caption = 'Sheet1' Caption = 'Sheet1'
ClientHeight = 437 ClientHeight = 427
ClientWidth = 876 ClientWidth = 876
object WorksheetGrid: TsWorksheetGrid object WorksheetGrid: TsWorksheetGrid
Left = 0 Left = 0
Height = 437 Height = 427
Top = 0 Top = 0
Width = 876 Width = 876
FrozenCols = 0 FrozenCols = 0
FrozenRows = 0 FrozenRows = 0
ReadFormulas = False ReadFormulas = False
Align = alClient Align = alClient
ColCount = 2 ColCount = 27
ExtendedSelect = False ExtendedSelect = False
MouseWheelOption = mwGrid MouseWheelOption = mwGrid
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goRowSizing, goColSizing, goThumbTracking, goSmoothScroll, goFixedColSizing] Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goRowSizing, goColSizing, goThumbTracking, goSmoothScroll, goFixedColSizing]
RowCount = 2 RowCount = 101
TabOrder = 0 TabOrder = 0
TitleStyle = tsNative TitleStyle = tsNative
OnSelection = WorksheetGridSelection OnSelection = WorksheetGridSelection
ColWidths = ( ColWidths = (
42 56
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64 64
) )
end end
@ -202,19 +244,19 @@ object Form1: TForm1
end end
object FontComboBox: TComboBox object FontComboBox: TComboBox
Left = 52 Left = 52
Height = 23 Height = 28
Top = 2 Top = 2
Width = 127 Width = 127
ItemHeight = 15 ItemHeight = 20
OnSelect = FontComboBoxSelect OnSelect = FontComboBoxSelect
TabOrder = 0 TabOrder = 0
end end
object FontSizeComboBox: TComboBox object FontSizeComboBox: TComboBox
Left = 179 Left = 179
Height = 23 Height = 28
Top = 2 Top = 2
Width = 48 Width = 48
ItemHeight = 15 ItemHeight = 20
Items.Strings = ( Items.Strings = (
'8' '8'
'9' '9'
@ -400,6 +442,42 @@ object Form1: TForm1
Caption = '&File' Caption = '&File'
object MenuItem46: TMenuItem object MenuItem46: TMenuItem
Action = AcNew Action = AcNew
Bitmap.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000FFFFFF000000
001D000000340000003600000036000000360000003600000036000000360000
0036000000360000003600000036000000330000001DFFFFFF00FFFFFF000000
0034F9F9F9F5FCFCFCFDFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFC
FCFFFCFCFCFFFCFCFCFFFCFCFCFDF9F9F9F300000033FFFFFF00000000010000
0036FCFCFCFEFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFC
FCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFD00000036FFFFFF00000000010000
0036FCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFBFBFBFFFBFBFBFFFBFB
FBFFFBFBFBFFFBFBFBFFFBFBFBFFFCFCFCFF0000003600000001000000010000
0036FCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFBFBFBFFFBFBFBFFFAFAFAFFFAFA
FAFFFAFAFAFFFAFAFAFFFAFAFAFFFCFCFCFF0000003600000001000000010000
0036FCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFBFBFBFFFBFBFBFFFBFBFBFFFAFA
FAFFFAFAFAFFF8F8F8FFF8F8F8FFFCFCFCFF0000003600000001000000010000
0036FCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFBFB
FBFFF9F9F9FFF9F9F9FFF8F8F8FFFCFCFCFF0000003600000001000000010000
0036FCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFAFA
FAFFF9F9F9FFF6F6F6FFF6F6F6FFFCFCFCFF0000003600000001000000010000
0036FCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFBFBFBFFF8F8
F8FFF6F6F6FFF3F3F3FFF2F2F2FFFCFCFCFF0000003600000001000000010000
0036FCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFBFBFBFFF8F8F8FFF5F5
F5FFF2F2F2FFEFEFEFFFEDEDEDFFFCFCFCFF0000003600000001000000010000
0036FCFCFCFFFBFBFBFFFCFCFCFFFCFCFCFFFBFBFBFFF8F8F8FFF5F5F5FFF1F1
F1FFECECECFFEAEAEAFFE6E6E6FFFCFCFCFF0000003600000001000000010000
0036FCFCFCFFF9F9F9FFF9F9F9FFF9F9F9FFF7F7F7FFF6F6F6FFF2F2F2FFEBEB
EBFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFF0000003600000001000000010000
0036FCFCFCFFF7F7F7FFF9F9F9FFF7F7F7FFF7F7F7FFF3F3F3FFF0F0F0FFEAEA
EAFFFCFCFCFFF6F6F6FFF4F4F4FF9999999100000020FFFFFF00FFFFFF000000
0036FBFBFBFDF4F4F4FFF5F5F5FFF5F5F5FFF5F5F5FFF1F1F1FFEFEFEFFFE9E9
E9FFFCFCFCFFE7E7E7FF959595910000002000000002FFFFFF00FFFFFF000000
0033F8F8F8F0FBFBFBFDFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFC
FCFFF8F8F8FF949494910000002000000002FFFFFF00FFFFFF00FFFFFF000000
001C000000330000003600000036000000360000003600000036000000360000
0036000000360000002000000002FFFFFF00FFFFFF00FFFFFF00
}
end end
object mnuOpen: TMenuItem object mnuOpen: TMenuItem
Action = AcOpen Action = AcOpen

View File

@ -82,6 +82,7 @@ type
CbShowGridLines: TCheckBox; CbShowGridLines: TCheckBox;
CbBackgroundColor: TColorBox; CbBackgroundColor: TColorBox;
CbReadFormulas: TCheckBox; CbReadFormulas: TCheckBox;
CbHeaderStyle: TComboBox;
EdFormula: TEdit; EdFormula: TEdit;
EdCellAddress: TEdit; EdCellAddress: TEdit;
FontComboBox: TComboBox; FontComboBox: TComboBox;
@ -232,6 +233,7 @@ type
procedure AcVertAlignmentExecute(Sender: TObject); procedure AcVertAlignmentExecute(Sender: TObject);
procedure AcWordwrapExecute(Sender: TObject); procedure AcWordwrapExecute(Sender: TObject);
procedure CbBackgroundColorSelect(Sender: TObject); procedure CbBackgroundColorSelect(Sender: TObject);
procedure CbHeaderStyleChange(Sender: TObject);
procedure CbReadFormulasChange(Sender: TObject); procedure CbReadFormulasChange(Sender: TObject);
procedure CbShowHeadersClick(Sender: TObject); procedure CbShowHeadersClick(Sender: TObject);
procedure CbShowGridLinesClick(Sender: TObject); procedure CbShowGridLinesClick(Sender: TObject);
@ -548,6 +550,11 @@ begin
with WorksheetGrid do BackgroundColors[Selection] := CbBackgroundColor.ItemIndex; with WorksheetGrid do BackgroundColors[Selection] := CbBackgroundColor.ItemIndex;
end; end;
procedure TForm1.CbHeaderStyleChange(Sender: TObject);
begin
WorksheetGrid.TitleStyle := TTitleStyle(CbHeaderStyle.ItemIndex);
end;
procedure TForm1.CbReadFormulasChange(Sender: TObject); procedure TForm1.CbReadFormulasChange(Sender: TObject);
begin begin
WorksheetGrid.ReadFormulas := CbReadFormulas.Checked; WorksheetGrid.ReadFormulas := CbReadFormulas.Checked;

View File

@ -609,7 +609,7 @@ begin
end; end;
if wasFixed then begin if wasFixed then begin
wasFixed := true; wasFixed := true; // ?????
AState := AState - [gdFixed]; AState := AState - [gdFixed];
Canvas.Brush.Color := clWindow; Canvas.Brush.Color := clWindow;
end; end;
@ -649,6 +649,8 @@ begin
ts.Alignment := taRightJustify; ts.Alignment := taRightJustify;
ts.Layout := tlCenter; ts.Layout := tlCenter;
end; end;
if ShowHeaders and ((ACol = 0) or (ARow = 0)) then
Canvas.Brush.Color := FixedColor
end; end;
if FWorksheet <> nil then begin if FWorksheet <> nil then begin
r := ARow - FHeaderCount; r := ARow - FHeaderCount;
@ -718,7 +720,7 @@ begin
Canvas.SaveHandleState; Canvas.SaveHandleState;
try try
// Avoid painting into the fixed cells // Avoid painting into the header cells
cliprect := ClientRect; cliprect := ClientRect;
if FixedCols > 0 then if FixedCols > 0 then
ColRowToOffset(True, True, FixedCols-1, tmp, cliprect.Left); ColRowToOffset(True, True, FixedCols-1, tmp, cliprect.Left);