You've already forked lazarus-ccr
fpspreadsheet: Add controls to change number format to the fpsgrid demo program. Also, add the "brush" button to copy a format to another cell.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3049 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -128,29 +128,30 @@
|
|||||||
<UnitName Value="mainform"/>
|
<UnitName Value="mainform"/>
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="1"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="309"/>
|
<TopLine Value="628"/>
|
||||||
<CursorPos X="18" Y="327"/>
|
<CursorPos X="30" Y="639"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
|
<Bookmarks Count="1">
|
||||||
|
<Item0 X="3" Y="361" ID="1"/>
|
||||||
|
</Bookmarks>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
<LoadedDesigner Value="True"/>
|
<LoadedDesigner Value="True"/>
|
||||||
</Unit1>
|
</Unit1>
|
||||||
<Unit2>
|
<Unit2>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<UnitName Value="fpspreadsheet"/>
|
<UnitName Value="fpspreadsheet"/>
|
||||||
<EditorIndex Value="3"/>
|
<IsVisibleTab Value="True"/>
|
||||||
|
<EditorIndex Value="4"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="2655"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="3" Y="2680"/>
|
||||||
<UsageCount Value="100"/>
|
<UsageCount Value="100"/>
|
||||||
<Bookmarks Count="1">
|
|
||||||
<Item0 X="13" Y="2613" ID="1"/>
|
|
||||||
</Bookmarks>
|
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit2>
|
</Unit2>
|
||||||
<Unit3>
|
<Unit3>
|
||||||
<Filename Value="..\..\fpspreadsheetgrid.pas"/>
|
<Filename Value="..\..\fpspreadsheetgrid.pas"/>
|
||||||
<UnitName Value="fpspreadsheetgrid"/>
|
<UnitName Value="fpspreadsheetgrid"/>
|
||||||
<EditorIndex Value="2"/>
|
<EditorIndex Value="3"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="1774"/>
|
<TopLine Value="1774"/>
|
||||||
<CursorPos X="26" Y="1785"/>
|
<CursorPos X="26" Y="1785"/>
|
||||||
@ -231,12 +232,11 @@
|
|||||||
<Unit13>
|
<Unit13>
|
||||||
<Filename Value="..\..\fpsutils.pas"/>
|
<Filename Value="..\..\fpsutils.pas"/>
|
||||||
<UnitName Value="fpsutils"/>
|
<UnitName Value="fpsutils"/>
|
||||||
<IsVisibleTab Value="True"/>
|
|
||||||
<EditorIndex Value="9"/>
|
<EditorIndex Value="9"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="65"/>
|
<TopLine Value="37"/>
|
||||||
<CursorPos X="1" Y="78"/>
|
<CursorPos X="1" Y="21"/>
|
||||||
<UsageCount Value="51"/>
|
<UsageCount Value="53"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit13>
|
</Unit13>
|
||||||
<Unit14>
|
<Unit14>
|
||||||
@ -268,7 +268,7 @@
|
|||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="62"/>
|
<TopLine Value="62"/>
|
||||||
<CursorPos X="15" Y="90"/>
|
<CursorPos X="15" Y="90"/>
|
||||||
<UsageCount Value="82"/>
|
<UsageCount Value="84"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit17>
|
</Unit17>
|
||||||
<Unit18>
|
<Unit18>
|
||||||
@ -289,11 +289,11 @@
|
|||||||
<Unit20>
|
<Unit20>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="..\..\xlscommon.pas"/>
|
||||||
<UnitName Value="xlscommon"/>
|
<UnitName Value="xlscommon"/>
|
||||||
<EditorIndex Value="4"/>
|
<EditorIndex Value="5"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="608"/>
|
<TopLine Value="588"/>
|
||||||
<CursorPos X="31" Y="634"/>
|
<CursorPos X="61" Y="592"/>
|
||||||
<UsageCount Value="78"/>
|
<UsageCount Value="80"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit20>
|
</Unit20>
|
||||||
<Unit21>
|
<Unit21>
|
||||||
@ -303,7 +303,7 @@
|
|||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="1363"/>
|
<TopLine Value="1363"/>
|
||||||
<CursorPos X="1" Y="1364"/>
|
<CursorPos X="1" Y="1364"/>
|
||||||
<UsageCount Value="65"/>
|
<UsageCount Value="67"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit21>
|
</Unit21>
|
||||||
<Unit22>
|
<Unit22>
|
||||||
@ -313,7 +313,7 @@
|
|||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="664"/>
|
<TopLine Value="664"/>
|
||||||
<CursorPos X="21" Y="677"/>
|
<CursorPos X="21" Y="677"/>
|
||||||
<UsageCount Value="66"/>
|
<UsageCount Value="68"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit22>
|
</Unit22>
|
||||||
<Unit23>
|
<Unit23>
|
||||||
@ -372,10 +372,12 @@
|
|||||||
</Unit29>
|
</Unit29>
|
||||||
<Unit30>
|
<Unit30>
|
||||||
<Filename Value="d:\lazarus-svn\lcl\include\control.inc"/>
|
<Filename Value="d:\lazarus-svn\lcl\include\control.inc"/>
|
||||||
|
<EditorIndex Value="2"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="4129"/>
|
<TopLine Value="2696"/>
|
||||||
<CursorPos X="1" Y="4161"/>
|
<CursorPos X="23" Y="2712"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="10"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
</Unit30>
|
</Unit30>
|
||||||
<Unit31>
|
<Unit31>
|
||||||
<Filename Value="..\..\fpspreadsheetchart.pas"/>
|
<Filename Value="..\..\fpspreadsheetchart.pas"/>
|
||||||
@ -482,12 +484,10 @@
|
|||||||
</Unit43>
|
</Unit43>
|
||||||
<Unit44>
|
<Unit44>
|
||||||
<Filename Value="C:\development\fpc\rtl\i386\i386.inc"/>
|
<Filename Value="C:\development\fpc\rtl\i386\i386.inc"/>
|
||||||
<EditorIndex Value="5"/>
|
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="1497"/>
|
<TopLine Value="1497"/>
|
||||||
<CursorPos X="1" Y="1515"/>
|
<CursorPos X="1" Y="1515"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit44>
|
</Unit44>
|
||||||
<Unit45>
|
<Unit45>
|
||||||
<Filename Value="C:\development\lazarus\lcl\grids.pas"/>
|
<Filename Value="C:\development\lazarus\lcl\grids.pas"/>
|
||||||
@ -592,124 +592,124 @@
|
|||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="30" HistoryIndex="29">
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
<Position1>
|
<Position1>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="783" Column="1" TopLine="768"/>
|
<Caret Line="633" Column="1" TopLine="631"/>
|
||||||
</Position1>
|
</Position1>
|
||||||
<Position2>
|
<Position2>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="804" Column="1" TopLine="788"/>
|
<Caret Line="638" Column="43" TopLine="619"/>
|
||||||
</Position2>
|
</Position2>
|
||||||
<Position3>
|
<Position3>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="805" Column="1" TopLine="788"/>
|
<Caret Line="633" Column="43" TopLine="619"/>
|
||||||
</Position3>
|
</Position3>
|
||||||
<Position4>
|
<Position4>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="817" Column="32" TopLine="788"/>
|
<Caret Line="195" Column="1" TopLine="168"/>
|
||||||
</Position4>
|
</Position4>
|
||||||
<Position5>
|
<Position5>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="807" Column="1" TopLine="788"/>
|
<Caret Line="643" Column="25" TopLine="631"/>
|
||||||
</Position5>
|
</Position5>
|
||||||
<Position6>
|
<Position6>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="808" Column="1" TopLine="788"/>
|
<Caret Line="640" Column="1" TopLine="631"/>
|
||||||
</Position6>
|
</Position6>
|
||||||
<Position7>
|
<Position7>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="784" Column="1" TopLine="769"/>
|
<Caret Line="342" Column="3" TopLine="337"/>
|
||||||
</Position7>
|
</Position7>
|
||||||
<Position8>
|
<Position8>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="785" Column="1" TopLine="769"/>
|
<Caret Line="343" Column="1" TopLine="336"/>
|
||||||
</Position8>
|
</Position8>
|
||||||
<Position9>
|
<Position9>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="786" Column="1" TopLine="769"/>
|
<Caret Line="346" Column="1" TopLine="336"/>
|
||||||
</Position9>
|
</Position9>
|
||||||
<Position10>
|
<Position10>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="787" Column="1" TopLine="769"/>
|
<Caret Line="354" Column="1" TopLine="336"/>
|
||||||
</Position10>
|
</Position10>
|
||||||
<Position11>
|
<Position11>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="788" Column="1" TopLine="769"/>
|
<Caret Line="346" Column="8" TopLine="336"/>
|
||||||
</Position11>
|
</Position11>
|
||||||
<Position12>
|
<Position12>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="794" Column="1" TopLine="769"/>
|
<Caret Line="343" Column="1" TopLine="336"/>
|
||||||
</Position12>
|
</Position12>
|
||||||
<Position13>
|
<Position13>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="1108" Column="1" TopLine="1093"/>
|
<Caret Line="346" Column="1" TopLine="336"/>
|
||||||
</Position13>
|
</Position13>
|
||||||
<Position14>
|
<Position14>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="1109" Column="1" TopLine="1093"/>
|
<Caret Line="347" Column="1" TopLine="336"/>
|
||||||
</Position14>
|
</Position14>
|
||||||
<Position15>
|
<Position15>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="1461" Column="1" TopLine="1445"/>
|
<Caret Line="348" Column="1" TopLine="336"/>
|
||||||
</Position15>
|
</Position15>
|
||||||
<Position16>
|
<Position16>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="1462" Column="1" TopLine="1445"/>
|
<Caret Line="349" Column="1" TopLine="336"/>
|
||||||
</Position16>
|
</Position16>
|
||||||
<Position17>
|
<Position17>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="1464" Column="1" TopLine="1445"/>
|
<Caret Line="350" Column="1" TopLine="336"/>
|
||||||
</Position17>
|
</Position17>
|
||||||
<Position18>
|
<Position18>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="1465" Column="1" TopLine="1451"/>
|
<Caret Line="351" Column="1" TopLine="336"/>
|
||||||
</Position18>
|
</Position18>
|
||||||
<Position19>
|
<Position19>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="1469" Column="1" TopLine="1451"/>
|
<Caret Line="354" Column="1" TopLine="336"/>
|
||||||
</Position19>
|
</Position19>
|
||||||
<Position20>
|
<Position20>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="1470" Column="1" TopLine="1451"/>
|
<Caret Line="640" Column="1" TopLine="621"/>
|
||||||
</Position20>
|
</Position20>
|
||||||
<Position21>
|
<Position21>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="1471" Column="1" TopLine="1451"/>
|
<Caret Line="641" Column="1" TopLine="621"/>
|
||||||
</Position21>
|
</Position21>
|
||||||
<Position22>
|
<Position22>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="1485" Column="39" TopLine="1468"/>
|
<Caret Line="343" Column="1" TopLine="324"/>
|
||||||
</Position22>
|
</Position22>
|
||||||
<Position23>
|
<Position23>
|
||||||
<Filename Value="..\..\fpsutils.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="913" Column="46" TopLine="884"/>
|
<Caret Line="632" Column="30" TopLine="621"/>
|
||||||
</Position23>
|
</Position23>
|
||||||
<Position24>
|
<Position24>
|
||||||
<Filename Value="..\..\fpsutils.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="83" Column="3" TopLine="52"/>
|
<Caret Line="633" Column="30" TopLine="622"/>
|
||||||
</Position24>
|
</Position24>
|
||||||
<Position25>
|
<Position25>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="1485" Column="42" TopLine="1459"/>
|
<Caret Line="634" Column="30" TopLine="623"/>
|
||||||
</Position25>
|
</Position25>
|
||||||
<Position26>
|
<Position26>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="1" Column="1" TopLine="1"/>
|
<Caret Line="635" Column="30" TopLine="624"/>
|
||||||
</Position26>
|
</Position26>
|
||||||
<Position27>
|
<Position27>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="2612" Column="3" TopLine="2674"/>
|
<Caret Line="636" Column="30" TopLine="625"/>
|
||||||
</Position27>
|
</Position27>
|
||||||
<Position28>
|
<Position28>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="581" Column="3" TopLine="573"/>
|
<Caret Line="637" Column="30" TopLine="626"/>
|
||||||
</Position28>
|
</Position28>
|
||||||
<Position29>
|
<Position29>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="1" Column="1" TopLine="1"/>
|
<Caret Line="638" Column="30" TopLine="627"/>
|
||||||
</Position29>
|
</Position29>
|
||||||
<Position30>
|
<Position30>
|
||||||
<Filename Value="..\..\fpsutils.pas"/>
|
<Filename Value="..\..\xlscommon.pas"/>
|
||||||
<Caret Line="1157" Column="1" TopLine="1131"/>
|
<Caret Line="592" Column="61" TopLine="588"/>
|
||||||
</Position30>
|
</Position30>
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
object Form1: TForm1
|
object Form1: TForm1
|
||||||
Left = 359
|
Left = 359
|
||||||
Height = 593
|
Height = 649
|
||||||
Top = 193
|
Top = 193
|
||||||
Width = 722
|
Width = 884
|
||||||
Caption = 'fpsGrid'
|
Caption = 'fpsGrid'
|
||||||
ClientHeight = 568
|
ClientHeight = 629
|
||||||
ClientWidth = 722
|
ClientWidth = 884
|
||||||
Menu = MainMenu1
|
Menu = MainMenu1
|
||||||
OnActivate = FormActivate
|
OnActivate = FormActivate
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
@ -14,18 +14,18 @@ object Form1: TForm1
|
|||||||
object Panel1: TPanel
|
object Panel1: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 76
|
Height = 76
|
||||||
Top = 492
|
Top = 553
|
||||||
Width = 722
|
Width = 884
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
ClientHeight = 76
|
ClientHeight = 76
|
||||||
ClientWidth = 722
|
ClientWidth = 884
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object CbShowHeaders: TCheckBox
|
object CbShowHeaders: TCheckBox
|
||||||
Left = 8
|
Left = 8
|
||||||
Height = 24
|
Height = 19
|
||||||
Top = 11
|
Top = 11
|
||||||
Width = 116
|
Width = 93
|
||||||
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 = 24
|
Height = 19
|
||||||
Top = 36
|
Top = 36
|
||||||
Width = 125
|
Width = 100
|
||||||
Caption = 'Show grid lines'
|
Caption = 'Show grid lines'
|
||||||
Checked = True
|
Checked = True
|
||||||
OnClick = CbShowGridLinesClick
|
OnClick = CbShowGridLinesClick
|
||||||
@ -45,7 +45,7 @@ object Form1: TForm1
|
|||||||
end
|
end
|
||||||
object EdFrozenCols: TSpinEdit
|
object EdFrozenCols: TSpinEdit
|
||||||
Left = 238
|
Left = 238
|
||||||
Height = 28
|
Height = 23
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 52
|
Width = 52
|
||||||
OnChange = EdFrozenColsChange
|
OnChange = EdFrozenColsChange
|
||||||
@ -53,7 +53,7 @@ object Form1: TForm1
|
|||||||
end
|
end
|
||||||
object EdFrozenRows: TSpinEdit
|
object EdFrozenRows: TSpinEdit
|
||||||
Left = 238
|
Left = 238
|
||||||
Height = 28
|
Height = 23
|
||||||
Top = 39
|
Top = 39
|
||||||
Width = 52
|
Width = 52
|
||||||
OnChange = EdFrozenRowsChange
|
OnChange = EdFrozenRowsChange
|
||||||
@ -61,18 +61,18 @@ object Form1: TForm1
|
|||||||
end
|
end
|
||||||
object Label1: TLabel
|
object Label1: TLabel
|
||||||
Left = 152
|
Left = 152
|
||||||
Height = 20
|
Height = 15
|
||||||
Top = 13
|
Top = 13
|
||||||
Width = 77
|
Width = 62
|
||||||
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 = 153
|
||||||
Height = 20
|
Height = 15
|
||||||
Top = 40
|
Top = 40
|
||||||
Width = 82
|
Width = 66
|
||||||
Caption = 'Frozen rows:'
|
Caption = 'Frozen rows:'
|
||||||
FocusControl = EdFrozenRows
|
FocusControl = EdFrozenRows
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
@ -80,9 +80,9 @@ object Form1: TForm1
|
|||||||
end
|
end
|
||||||
object PageControl1: TPageControl
|
object PageControl1: TPageControl
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 439
|
Height = 500
|
||||||
Top = 53
|
Top = 53
|
||||||
Width = 722
|
Width = 884
|
||||||
ActivePage = TabSheet1
|
ActivePage = TabSheet1
|
||||||
Align = alClient
|
Align = alClient
|
||||||
TabIndex = 0
|
TabIndex = 0
|
||||||
@ -90,13 +90,13 @@ object Form1: TForm1
|
|||||||
OnChange = PageControl1Change
|
OnChange = PageControl1Change
|
||||||
object TabSheet1: TTabSheet
|
object TabSheet1: TTabSheet
|
||||||
Caption = 'Sheet1'
|
Caption = 'Sheet1'
|
||||||
ClientHeight = 406
|
ClientHeight = 472
|
||||||
ClientWidth = 714
|
ClientWidth = 876
|
||||||
object sWorksheetGrid1: TsWorksheetGrid
|
object sWorksheetGrid1: TsWorksheetGrid
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 406
|
Height = 472
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 714
|
Width = 876
|
||||||
FrozenCols = 0
|
FrozenCols = 0
|
||||||
FrozenRows = 0
|
FrozenRows = 0
|
||||||
Align = alClient
|
Align = alClient
|
||||||
@ -108,7 +108,7 @@ object Form1: TForm1
|
|||||||
TitleStyle = tsNative
|
TitleStyle = tsNative
|
||||||
OnSelection = sWorksheetGrid1Selection
|
OnSelection = sWorksheetGrid1Selection
|
||||||
ColWidths = (
|
ColWidths = (
|
||||||
56
|
42
|
||||||
64
|
64
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
@ -118,7 +118,7 @@ object Form1: TForm1
|
|||||||
Left = 0
|
Left = 0
|
||||||
Height = 26
|
Height = 26
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 722
|
Width = 884
|
||||||
ButtonHeight = 24
|
ButtonHeight = 24
|
||||||
Caption = 'ToolBar1'
|
Caption = 'ToolBar1'
|
||||||
EdgeBorders = []
|
EdgeBorders = []
|
||||||
@ -163,41 +163,42 @@ object Form1: TForm1
|
|||||||
Left = 0
|
Left = 0
|
||||||
Height = 27
|
Height = 27
|
||||||
Top = 26
|
Top = 26
|
||||||
Width = 722
|
Width = 884
|
||||||
ButtonHeight = 23
|
ButtonHeight = 23
|
||||||
Caption = 'FormatToolBar'
|
Caption = 'FormatToolBar'
|
||||||
Images = ImageList1
|
Images = ImageList1
|
||||||
TabOrder = 3
|
TabOrder = 3
|
||||||
object ToolButton10: TToolButton
|
object ToolButton10: TToolButton
|
||||||
Left = 296
|
Left = 324
|
||||||
Top = 2
|
Top = 2
|
||||||
Action = AcLeftAlign
|
Action = AcLeftAlign
|
||||||
|
Wrap = True
|
||||||
end
|
end
|
||||||
object ToolButton12: TToolButton
|
object ToolButton12: TToolButton
|
||||||
Left = 319
|
Left = 347
|
||||||
Top = 2
|
Top = 2
|
||||||
Action = AcHorCenterAlign
|
Action = AcHorCenterAlign
|
||||||
end
|
end
|
||||||
object ToolButton13: TToolButton
|
object ToolButton13: TToolButton
|
||||||
Left = 342
|
Left = 370
|
||||||
Top = 2
|
Top = 2
|
||||||
Action = AcRightAlign
|
Action = AcRightAlign
|
||||||
end
|
end
|
||||||
object FontComboBox: TComboBox
|
object FontComboBox: TComboBox
|
||||||
Left = 24
|
Left = 52
|
||||||
Height = 28
|
Height = 23
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 127
|
Width = 127
|
||||||
ItemHeight = 20
|
ItemHeight = 15
|
||||||
OnSelect = FontComboBoxSelect
|
OnSelect = FontComboBoxSelect
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
end
|
end
|
||||||
object FontSizeComboBox: TComboBox
|
object FontSizeComboBox: TComboBox
|
||||||
Left = 151
|
Left = 179
|
||||||
Height = 28
|
Height = 23
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 48
|
Width = 48
|
||||||
ItemHeight = 20
|
ItemHeight = 15
|
||||||
Items.Strings = (
|
Items.Strings = (
|
||||||
'8'
|
'8'
|
||||||
'9'
|
'9'
|
||||||
@ -214,70 +215,75 @@ object Form1: TForm1
|
|||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
end
|
end
|
||||||
object ToolButton7: TToolButton
|
object ToolButton7: TToolButton
|
||||||
Left = 199
|
Left = 227
|
||||||
Top = 2
|
Top = 2
|
||||||
Action = AcFontBold
|
Action = AcFontBold
|
||||||
end
|
end
|
||||||
object ToolButton8: TToolButton
|
object ToolButton8: TToolButton
|
||||||
Left = 222
|
Left = 250
|
||||||
Top = 2
|
Top = 2
|
||||||
Action = AcFontItalic
|
Action = AcFontItalic
|
||||||
end
|
end
|
||||||
object ToolButton9: TToolButton
|
object ToolButton9: TToolButton
|
||||||
Left = 245
|
Left = 273
|
||||||
Top = 2
|
Top = 2
|
||||||
Action = AcFontUnderline
|
Action = AcFontUnderline
|
||||||
end
|
end
|
||||||
object ToolButton11: TToolButton
|
object ToolButton11: TToolButton
|
||||||
Left = 268
|
Left = 296
|
||||||
Top = 2
|
Top = 2
|
||||||
Action = AcFontStrikeout
|
Action = AcFontStrikeout
|
||||||
end
|
end
|
||||||
object ToolButton14: TToolButton
|
object ToolButton14: TToolButton
|
||||||
Left = 291
|
Left = 319
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 5
|
Width = 5
|
||||||
Caption = 'ToolButton14'
|
Caption = 'ToolButton14'
|
||||||
Style = tbsDivider
|
Style = tbsDivider
|
||||||
|
Wrap = True
|
||||||
end
|
end
|
||||||
object ToolButton15: TToolButton
|
object ToolButton15: TToolButton
|
||||||
Left = 365
|
Left = 393
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 5
|
Width = 5
|
||||||
Caption = 'ToolButton15'
|
Caption = 'ToolButton15'
|
||||||
Style = tbsDivider
|
Style = tbsDivider
|
||||||
|
Wrap = True
|
||||||
end
|
end
|
||||||
object ToolButton16: TToolButton
|
object ToolButton16: TToolButton
|
||||||
Left = 370
|
Left = 398
|
||||||
Top = 2
|
Top = 2
|
||||||
Action = AcVAlignTop
|
Action = AcVAlignTop
|
||||||
|
Wrap = True
|
||||||
end
|
end
|
||||||
object ToolButton17: TToolButton
|
object ToolButton17: TToolButton
|
||||||
Left = 393
|
Left = 421
|
||||||
Top = 2
|
Top = 2
|
||||||
Action = AcVAlignCenter
|
Action = AcVAlignCenter
|
||||||
end
|
end
|
||||||
object ToolButton18: TToolButton
|
object ToolButton18: TToolButton
|
||||||
Left = 416
|
Left = 444
|
||||||
Top = 2
|
Top = 2
|
||||||
Action = AcVAlignBottom
|
Action = AcVAlignBottom
|
||||||
end
|
end
|
||||||
object ToolButton19: TToolButton
|
object ToolButton19: TToolButton
|
||||||
Left = 439
|
Left = 467
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 5
|
Width = 5
|
||||||
Caption = 'ToolButton19'
|
Caption = 'ToolButton19'
|
||||||
Style = tbsDivider
|
Style = tbsDivider
|
||||||
|
Wrap = True
|
||||||
end
|
end
|
||||||
object TbBorders: TToolButton
|
object TbBorders: TToolButton
|
||||||
Left = 444
|
Left = 472
|
||||||
Top = 2
|
Top = 2
|
||||||
Action = AcBorderNone
|
Action = AcBorderNone
|
||||||
DropdownMenu = BordersPopupMenu
|
DropdownMenu = BordersPopupMenu
|
||||||
Style = tbsDropDown
|
Style = tbsDropDown
|
||||||
|
Wrap = True
|
||||||
end
|
end
|
||||||
object CbBackgroundColor: TColorBox
|
object CbBackgroundColor: TColorBox
|
||||||
Left = 479
|
Left = 507
|
||||||
Height = 22
|
Height = 22
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 132
|
Width = 132
|
||||||
@ -288,10 +294,42 @@ object Form1: TForm1
|
|||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
end
|
end
|
||||||
object ToolButton21: TToolButton
|
object ToolButton21: TToolButton
|
||||||
Left = 1
|
Left = 29
|
||||||
Top = 2
|
Top = 2
|
||||||
Action = AcFont
|
Action = AcFont
|
||||||
end
|
end
|
||||||
|
object TbNumFormats: TToolButton
|
||||||
|
Left = 639
|
||||||
|
Hint = 'Change number format'
|
||||||
|
Top = 2
|
||||||
|
Caption = 'Fixed'
|
||||||
|
DropdownMenu = NumFormatPopupMenu
|
||||||
|
ImageIndex = 33
|
||||||
|
Style = tbsDropDown
|
||||||
|
end
|
||||||
|
object ToolButton24: TToolButton
|
||||||
|
Left = 697
|
||||||
|
Top = 2
|
||||||
|
Action = AcDecDecimals
|
||||||
|
end
|
||||||
|
object ToolButton25: TToolButton
|
||||||
|
Left = 674
|
||||||
|
Top = 2
|
||||||
|
Action = AcIncDecimals
|
||||||
|
end
|
||||||
|
object ToolButton26: TToolButton
|
||||||
|
Left = 24
|
||||||
|
Top = 2
|
||||||
|
Width = 5
|
||||||
|
Caption = 'ToolButton26'
|
||||||
|
Style = tbsDivider
|
||||||
|
Wrap = True
|
||||||
|
end
|
||||||
|
object ToolButton20: TToolButton
|
||||||
|
Left = 1
|
||||||
|
Top = 2
|
||||||
|
Action = AcCopyFormat
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object OpenDialog1: TOpenDialog
|
object OpenDialog1: TOpenDialog
|
||||||
DefaultExt = '.xls'
|
DefaultExt = '.xls'
|
||||||
@ -804,13 +842,40 @@ object Form1: TForm1
|
|||||||
Action = AcWordwrap
|
Action = AcWordwrap
|
||||||
AutoCheck = True
|
AutoCheck = True
|
||||||
end
|
end
|
||||||
|
object MnuNumberFormat: TMenuItem
|
||||||
|
Caption = 'Number format'
|
||||||
|
object MenuItem33: TMenuItem
|
||||||
|
Action = AcNFGeneral
|
||||||
|
AutoCheck = True
|
||||||
|
end
|
||||||
|
object MenuItem34: TMenuItem
|
||||||
|
Action = AcNFFixed
|
||||||
|
AutoCheck = True
|
||||||
|
end
|
||||||
|
object MenuItem35: TMenuItem
|
||||||
|
Action = AcNFFixedTh
|
||||||
|
AutoCheck = True
|
||||||
|
end
|
||||||
|
object MenuItem36: TMenuItem
|
||||||
|
Action = AcNFPercentage
|
||||||
|
AutoCheck = True
|
||||||
|
end
|
||||||
|
object MenuItem37: TMenuItem
|
||||||
|
Action = AcNFExp
|
||||||
|
AutoCheck = True
|
||||||
|
end
|
||||||
|
object MenuItem38: TMenuItem
|
||||||
|
Action = AcNFSci
|
||||||
|
AutoCheck = True
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object ImageList1: TImageList
|
object ImageList1: TImageList
|
||||||
left = 176
|
left = 176
|
||||||
top = 120
|
top = 120
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
4C691E0000001000000010000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
4C69220000001000000010000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
FF00FFFFFF00EAC39DFFE6BF96FFE4BB92FFE4BB92FFD1A06CF5D09E6DF6CC96
|
FF00FFFFFF00EAC39DFFE6BF96FFE4BB92FFE4BB92FFD1A06CF5D09E6DF6CC96
|
||||||
5FDAC479427EB2673C09FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
5FDAC479427EB2673C09FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
FF00FFFFFF00E5BE96FFFFFFFEFFFDF3E9FFFDF3EAFFFCF2E8FFFAEFE3FFFAF2
|
FF00FFFFFF00E5BE96FFFFFFFEFFFDF3E9FFFDF3EAFFFCF2E8FFFAEFE3FFFAF2
|
||||||
@ -1770,6 +1835,134 @@ object Form1: TForm1
|
|||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00016395000163940001629300016192000162
|
||||||
|
930001629300016394000000000001334C00016597000164960001639400003A
|
||||||
|
8C00003E9248003C8FCC00378A48016395000163940001629300016192000162
|
||||||
|
930001629300016394000000000001334C390165969C0164959C0163943E0039
|
||||||
|
8B48003688CC5285C9FF002E7ECC016395000163940001629300016192000162
|
||||||
|
93000162930001639400000000240000006788CCDDFF87CBDDFF016091AF0030
|
||||||
|
80CC3F72B6FF002774CC00247048016395000163940001629300016192000162
|
||||||
|
9300016293100162936D00000069DDDCDCFF949494FF70B4D6FF80C4DBFF015C
|
||||||
|
8DB2001A63CC0013584800226E00016395050163941401629328016192410161
|
||||||
|
9277106C9AAB4B9BBADB79B9D5FC919191FFD9D4D4FF8D8D8DFF68ACCEFF74B8
|
||||||
|
D4FF015887B4015686400155840001629383126D9BB82078A2C33385ABD058A2
|
||||||
|
C0E774B9D1FB6EACCCFF669DC8FF83C7DAFF888888FFD3CACAFF838383FF60A4
|
||||||
|
C6FF63A7C9FF015382A5015281000160913E015E8FB16AAEC9FF66A8C5FF5692
|
||||||
|
B8FF4B80AFFF5D97BFFF77B9D2FF669DC8FF7BBAD5FF7E7E7EFFCEC0C0FF7979
|
||||||
|
79FF5588BBFF014F7EA6014E7D00015F9000002B5548002B55CC336898FF508C
|
||||||
|
B3FF69ABC8FF67A7C6FF4D80B3FF71B1CEFF6EA9CDFF6CA3CEFF6D6D6DFFAA99
|
||||||
|
99FF010101A5014C7A42014B7A00015F9000002B55000157873F015585B65FA1
|
||||||
|
C0FF3F79A3FF4278A7FF66A6C5FF619DC2FF5E95C1FF74B4D1FF6598CBFF0101
|
||||||
|
01AB0101013C014B7900014B7A00015F9000002B550001568600002B5548002B
|
||||||
|
55CC4F8DB3FF68ACC8FF4880ACFF5087B3FF6AAAC8FF5588BBFF00416EC1003E
|
||||||
|
6A4401010100014B7900014B7A00015F9000002B550001568600002B5500014D
|
||||||
|
7C41014B79BB3A719FFF386F9DFF5F9FC0FF4578ABFF003763C600356046003C
|
||||||
|
680001010100014B7900014B7A00015F9000002B550001568600002B5500014C
|
||||||
|
7B00002B5548002B55CC5494B7FF34679AFF00305ACA002D584800335E00003C
|
||||||
|
680001010100014B7900014B7A00015F9000002B550001568600002B5500014C
|
||||||
|
7B00002B550000315C47002D57CC002C56CC002B5548002C570000335E00003C
|
||||||
|
680001010100014B7900014B7A00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E7815F00BE5A3800B34B
|
||||||
|
2900D4573500DF5D3B00702F1E0001010100010101000101013F010101B40101
|
||||||
|
01B601010140FFFFFF00FFFFFF00FFFFFF00FFFFFF00E7815F40BE5A38FFB148
|
||||||
|
2600D4573500DF5D3B00702F1E000101010001010112010101B50101012E0101
|
||||||
|
0138010101B9FFFFFF00FFFFFF00FFFFFF00FFFFFF00E7815FFFBE5A38E0AF45
|
||||||
|
23FFD45735FFDF5D3B00391810000101010001010112010101B7010101000101
|
||||||
|
0113010101BBFFFFFF00FFFFFF00FFFFFF00FFFFFF00E7815F40BE5A38FFB148
|
||||||
|
2600D457350039181000010101000101010001010113010101B9010101000101
|
||||||
|
0113010101BEFFFFFF00FFFFFF00FFFFFF00FFFFFF00E7815F00BE5A3800B34B
|
||||||
|
29009D40270001010100010101B70101015C01010113010101BB0101012F0101
|
||||||
|
013A010101C0FFFFFF00FFFFFF00FFFFFF00FFFFFF00E7815F00BE5A3800873A
|
||||||
|
21000101010001010100010101B90101015D0101010001010143010101BF0101
|
||||||
|
01C101010144FFFFFF00FFFFFF00FFFFFF00FFFFFF00E7815F00BE5A38002E15
|
||||||
|
0D00010101000101010001010100010101000101010001010100010101000101
|
||||||
|
010001010100FFFFFF00FFFFFF00FFFFFF00FFFFFF0001010100010101000101
|
||||||
|
0100010101000101010001010100010101000101010001010100010101000101
|
||||||
|
010001010100FFFFFF00FFFFFF00FFFFFF00FFFFFF0001010100010101000101
|
||||||
|
010001010143010101BE010101C0010101440101010001010145010101C60101
|
||||||
|
01C801010147FFFFFF00FFFFFF00FFFFFF00FFFFFF0001010100010101000101
|
||||||
|
0113010101BF010101300101013B010101C401010114010101C7010101320101
|
||||||
|
013D010101CDFFFFFF00FFFFFF00FFFFFF00FFFFFF0001010100010101000101
|
||||||
|
0113010101C10101010001010114010101C601010114010101CA010101000000
|
||||||
|
0015000000D5FFFFFF00FFFFFF00FFFFFF00FFFFFF0001010100010101000101
|
||||||
|
0114010101C40101010001010114010101C901010115010101CC010101000000
|
||||||
|
0016000000DEFFFFFF00FFFFFF00FFFFFF00FFFFFF00010101C1010101610101
|
||||||
|
0114010101C6010101320101013D010101CB00000015000000D5000000370000
|
||||||
|
0045000000E6FFFFFF00FFFFFF00FFFFFF00FFFFFF00010101C4010101630101
|
||||||
|
010001010146010101CB010101CC00000048000000000000004E000000E40000
|
||||||
|
00E900000053FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0001010100010101000101
|
||||||
|
01000101013E010101AF010101B00101013E010101000101013F010101B40101
|
||||||
|
01B601010140FFFFFF00FFFFFF00FFFFFF00FFFFFF0001010100010101000101
|
||||||
|
0112010101AF0101012C01010135010101B301010112010101B50101012E0101
|
||||||
|
0138010101B9FFFFFF00FFFFFF00FFFFFF00FFFFFF0001010100010101000101
|
||||||
|
0112010101B10101010001010112010101B401010112010101B7010101000101
|
||||||
|
0113010101BBFFFFFF00FFFFFF00FFFFFF00FFFFFF0001010100010101000101
|
||||||
|
0112010101B20101010001010112010101B601010113010101B9010101000101
|
||||||
|
0113010101BEFFFFFF00FFFFFF00FFFFFF00FFFFFF00010101B1010101590101
|
||||||
|
0112010101B40101012E01010137010101B801010113010101BB0101012F0101
|
||||||
|
013A010101C0FFFFFF00FFFFFF00FFFFFF00FFFFFF00010101B20101015A0101
|
||||||
|
010001010140010101B8010101B9010101410101010001010143010101BF0101
|
||||||
|
01C101010144FFFFFF00FFFFFF00FFFFFF00FFFFFF0001010100010101000101
|
||||||
|
0100010101000101010001010100010101000101010001010100010101000101
|
||||||
|
010001010100FFFFFF00FFFFFF00FFFFFF00FFFFFF00010101002C120A00AF45
|
||||||
|
230033150D000101010001010100010101000101010001010100010101000101
|
||||||
|
010001010100FFFFFF00FFFFFF00FFFFFF00FFFFFF00E7815F00B9543200AF45
|
||||||
|
2300D4573500A8462D0039181000010101000101010001010145010101C60101
|
||||||
|
01C801010147FFFFFF00FFFFFF00FFFFFF00FFFFFF00E7815F00BC573500AF45
|
||||||
|
23FFD4573540DF5D3B00702F1E000101010001010114010101C7010101320101
|
||||||
|
013D010101CDFFFFFF00FFFFFF00FFFFFF00FFFFFF00E7815FFFBE5A38FFAF45
|
||||||
|
23E0D45735FFDF5D3B00391810000101010001010114010101CA010101000000
|
||||||
|
0015000000D5FFFFFF00FFFFFF00FFFFFF00FFFFFF00E7815F00BC573500AF45
|
||||||
|
23FFD457354039181000010101000101010001010115010101CC010101000000
|
||||||
|
0016000000DEFFFFFF00FFFFFF00FFFFFF00FFFFFF00E7815F00B9543200AF45
|
||||||
|
23009D40270001010100010101CA0101016600000015000000D5000000370000
|
||||||
|
0045000000E6FFFFFF00FFFFFF00FFFFFF00FFFFFF00E7815F00B9543200AF45
|
||||||
|
230033150D0001010100010101CC00000068000000000000004E000000E40000
|
||||||
|
00E900000053FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00010101000101
|
||||||
|
0100010101000101012B010101AC0101012B010101000101012B010101AC0101
|
||||||
|
012BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00010101000101
|
||||||
|
01000101010001010160010101A6010101000101010001010160010101A60101
|
||||||
|
0100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00010101000101
|
||||||
|
010001010100010101A9010101620101010001010100010101A9010101620101
|
||||||
|
0100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000101012E0101
|
||||||
|
01B5010101B5010101B5010101B5010101B5010101B5010101B5010101B50101
|
||||||
|
01B5FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00010101000101
|
||||||
|
010001010166010101B1010101000101010001010166010101B1010101000101
|
||||||
|
0100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00010101000101
|
||||||
|
0100010101B5010101690101010001010100010101B501010169010101000101
|
||||||
|
0100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00010101C30101
|
||||||
|
01C3010101C3010101C3010101C3010101C3010101C3010101C3010101C30101
|
||||||
|
0131FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00010101000101
|
||||||
|
016F010101BE01010100010101000101016F010101BE01010100010101000101
|
||||||
|
0100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00010101000101
|
||||||
|
01C7010101730101010001010100010101C70101017301010100010101000101
|
||||||
|
0100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000003A0000
|
||||||
|
00E400000039000000000000003A000000E40000003900000000010101000101
|
||||||
|
0100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
FF00FFFFFF00FFFFFF00FFFFFF00
|
FF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
@ -2035,6 +2228,72 @@ object Form1: TForm1
|
|||||||
Hint = 'Text characters stacked'
|
Hint = 'Text characters stacked'
|
||||||
OnExecute = AcTextRotationExecute
|
OnExecute = AcTextRotationExecute
|
||||||
end
|
end
|
||||||
|
object AcNFGeneral: TAction
|
||||||
|
Tag = 150
|
||||||
|
Category = 'Format'
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'General'
|
||||||
|
Checked = True
|
||||||
|
OnExecute = AcNumFormatExecute
|
||||||
|
end
|
||||||
|
object AcNFFixed: TAction
|
||||||
|
Tag = 151
|
||||||
|
Category = 'Format'
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'Fixed'
|
||||||
|
Hint = 'Fixed format'
|
||||||
|
OnExecute = AcNumFormatExecute
|
||||||
|
end
|
||||||
|
object AcNFFixedTh: TAction
|
||||||
|
Tag = 152
|
||||||
|
Category = 'Format'
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'Fixed w/thousand separator'
|
||||||
|
Hint = 'Fixed format with thousand separator'
|
||||||
|
OnExecute = AcNumFormatExecute
|
||||||
|
end
|
||||||
|
object AcNFExp: TAction
|
||||||
|
Tag = 153
|
||||||
|
Category = 'Format'
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'Exponential'
|
||||||
|
OnExecute = AcNumFormatExecute
|
||||||
|
end
|
||||||
|
object AcNFSci: TAction
|
||||||
|
Tag = 154
|
||||||
|
Category = 'Format'
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'Scientific'
|
||||||
|
OnExecute = AcNumFormatExecute
|
||||||
|
end
|
||||||
|
object AcNFPercentage: TAction
|
||||||
|
Tag = 155
|
||||||
|
Category = 'Format'
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'Percentage'
|
||||||
|
OnExecute = AcNumFormatExecute
|
||||||
|
end
|
||||||
|
object AcIncDecimals: TAction
|
||||||
|
Category = 'Format'
|
||||||
|
Caption = 'AcIncDecimals'
|
||||||
|
Hint = 'More decimals'
|
||||||
|
ImageIndex = 31
|
||||||
|
OnExecute = AcIncDecDecimalsExecute
|
||||||
|
end
|
||||||
|
object AcDecDecimals: TAction
|
||||||
|
Category = 'Format'
|
||||||
|
Caption = 'AcDecDecimals'
|
||||||
|
Hint = 'Less decimals'
|
||||||
|
ImageIndex = 32
|
||||||
|
OnExecute = AcIncDecDecimalsExecute
|
||||||
|
end
|
||||||
|
object AcCopyFormat: TAction
|
||||||
|
Category = 'Format'
|
||||||
|
AutoCheck = True
|
||||||
|
Caption = 'AcCopyFormat'
|
||||||
|
ImageIndex = 30
|
||||||
|
OnExecute = AcCopyFormatExecute
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object FontDialog1: TFontDialog
|
object FontDialog1: TFontDialog
|
||||||
MinFontSize = 0
|
MinFontSize = 0
|
||||||
@ -2650,4 +2909,32 @@ object Form1: TForm1
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
object NumFormatPopupMenu: TPopupMenu
|
||||||
|
left = 290
|
||||||
|
top = 179
|
||||||
|
object MnuNFGeneral: TMenuItem
|
||||||
|
Action = AcNFGeneral
|
||||||
|
AutoCheck = True
|
||||||
|
end
|
||||||
|
object MnuNFFixed: TMenuItem
|
||||||
|
Action = AcNFFixed
|
||||||
|
AutoCheck = True
|
||||||
|
end
|
||||||
|
object MnuNFFixedTh: TMenuItem
|
||||||
|
Action = AcNFFixedTh
|
||||||
|
AutoCheck = True
|
||||||
|
end
|
||||||
|
object MnuNFPercentage: TMenuItem
|
||||||
|
Action = AcNFPercentage
|
||||||
|
AutoCheck = True
|
||||||
|
end
|
||||||
|
object MnuNFExp: TMenuItem
|
||||||
|
Action = AcNFExp
|
||||||
|
AutoCheck = True
|
||||||
|
end
|
||||||
|
object MnuNFSci: TMenuItem
|
||||||
|
Action = AcNFSci
|
||||||
|
AutoCheck = True
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -46,6 +46,15 @@ type
|
|||||||
AcTextVertCW: TAction;
|
AcTextVertCW: TAction;
|
||||||
AcTextVertCCW: TAction;
|
AcTextVertCCW: TAction;
|
||||||
AcTextStacked: TAction;
|
AcTextStacked: TAction;
|
||||||
|
AcNFFixed: TAction;
|
||||||
|
AcNFFixedTh: TAction;
|
||||||
|
AcNFPercentage: TAction;
|
||||||
|
AcIncDecimals: TAction;
|
||||||
|
AcDecDecimals: TAction;
|
||||||
|
AcNFGeneral: TAction;
|
||||||
|
AcNFExp: TAction;
|
||||||
|
AcNFSci: TAction;
|
||||||
|
AcCopyFormat: TAction;
|
||||||
AcWordwrap: TAction;
|
AcWordwrap: TAction;
|
||||||
AcVAlignDefault: TAction;
|
AcVAlignDefault: TAction;
|
||||||
AcVAlignTop: TAction;
|
AcVAlignTop: TAction;
|
||||||
@ -88,6 +97,19 @@ type
|
|||||||
MenuItem30: TMenuItem;
|
MenuItem30: TMenuItem;
|
||||||
MenuItem31: TMenuItem;
|
MenuItem31: TMenuItem;
|
||||||
MenuItem32: TMenuItem;
|
MenuItem32: TMenuItem;
|
||||||
|
MenuItem33: TMenuItem;
|
||||||
|
MenuItem34: TMenuItem;
|
||||||
|
MenuItem35: TMenuItem;
|
||||||
|
MenuItem36: TMenuItem;
|
||||||
|
MenuItem37: TMenuItem;
|
||||||
|
MenuItem38: TMenuItem;
|
||||||
|
MnuNumberFormat: TMenuItem;
|
||||||
|
MnuNFFixed: TMenuItem;
|
||||||
|
MnuNFFixedTh: TMenuItem;
|
||||||
|
MnuNFPercentage: TMenuItem;
|
||||||
|
MnuNFExp: TMenuItem;
|
||||||
|
MnuNFSci: TMenuItem;
|
||||||
|
MnuNFGeneral: TMenuItem;
|
||||||
MnuTextRotation: TMenuItem;
|
MnuTextRotation: TMenuItem;
|
||||||
MenuItem3: TMenuItem;
|
MenuItem3: TMenuItem;
|
||||||
MenuItem4: TMenuItem;
|
MenuItem4: TMenuItem;
|
||||||
@ -115,6 +137,7 @@ type
|
|||||||
PageControl1: TPageControl;
|
PageControl1: TPageControl;
|
||||||
Panel1: TPanel;
|
Panel1: TPanel;
|
||||||
BordersPopupMenu: TPopupMenu;
|
BordersPopupMenu: TPopupMenu;
|
||||||
|
NumFormatPopupMenu: TPopupMenu;
|
||||||
SaveDialog1: TSaveDialog;
|
SaveDialog1: TSaveDialog;
|
||||||
EdFrozenCols: TSpinEdit;
|
EdFrozenCols: TSpinEdit;
|
||||||
sWorksheetGrid1: TsWorksheetGrid;
|
sWorksheetGrid1: TsWorksheetGrid;
|
||||||
@ -134,7 +157,12 @@ type
|
|||||||
ToolButton19: TToolButton;
|
ToolButton19: TToolButton;
|
||||||
ToolButton2: TToolButton;
|
ToolButton2: TToolButton;
|
||||||
TbBorders: TToolButton;
|
TbBorders: TToolButton;
|
||||||
|
TbNumFormats: TToolButton;
|
||||||
|
ToolButton20: TToolButton;
|
||||||
ToolButton21: TToolButton;
|
ToolButton21: TToolButton;
|
||||||
|
ToolButton24: TToolButton;
|
||||||
|
ToolButton25: TToolButton;
|
||||||
|
ToolButton26: TToolButton;
|
||||||
ToolButton3: TToolButton;
|
ToolButton3: TToolButton;
|
||||||
ToolButton4: TToolButton;
|
ToolButton4: TToolButton;
|
||||||
ToolButton5: TToolButton;
|
ToolButton5: TToolButton;
|
||||||
@ -143,10 +171,13 @@ type
|
|||||||
ToolButton8: TToolButton;
|
ToolButton8: TToolButton;
|
||||||
ToolButton9: TToolButton;
|
ToolButton9: TToolButton;
|
||||||
procedure AcBorderExecute(Sender: TObject);
|
procedure AcBorderExecute(Sender: TObject);
|
||||||
|
procedure AcCopyFormatExecute(Sender: TObject);
|
||||||
procedure AcEditExecute(Sender: TObject);
|
procedure AcEditExecute(Sender: TObject);
|
||||||
procedure AcFontExecute(Sender: TObject);
|
procedure AcFontExecute(Sender: TObject);
|
||||||
procedure AcFontStyleExecute(Sender: TObject);
|
procedure AcFontStyleExecute(Sender: TObject);
|
||||||
procedure AcHorAlignmentExecute(Sender: TObject);
|
procedure AcHorAlignmentExecute(Sender: TObject);
|
||||||
|
procedure AcIncDecDecimalsExecute(Sender: TObject);
|
||||||
|
procedure AcNumFormatExecute(Sender: TObject);
|
||||||
procedure AcOpenExecute(Sender: TObject);
|
procedure AcOpenExecute(Sender: TObject);
|
||||||
procedure AcQuitExecute(Sender: TObject);
|
procedure AcQuitExecute(Sender: TObject);
|
||||||
procedure AcSaveAsExecute(Sender: TObject);
|
procedure AcSaveAsExecute(Sender: TObject);
|
||||||
@ -167,6 +198,7 @@ type
|
|||||||
procedure sWorksheetGrid1Selection(Sender: TObject; aCol, aRow: Integer);
|
procedure sWorksheetGrid1Selection(Sender: TObject; aCol, aRow: Integer);
|
||||||
private
|
private
|
||||||
{ private declarations }
|
{ private declarations }
|
||||||
|
FCopiedFormat: TCell;
|
||||||
procedure LoadFile(const AFileName: String);
|
procedure LoadFile(const AFileName: String);
|
||||||
procedure SetupBackgroundColorBox;
|
procedure SetupBackgroundColorBox;
|
||||||
procedure UpdateBackgroundColorIndex;
|
procedure UpdateBackgroundColorIndex;
|
||||||
@ -174,6 +206,7 @@ type
|
|||||||
procedure UpdateFontSizeIndex;
|
procedure UpdateFontSizeIndex;
|
||||||
procedure UpdateFontStyleActions;
|
procedure UpdateFontStyleActions;
|
||||||
procedure UpdateHorAlignmentActions;
|
procedure UpdateHorAlignmentActions;
|
||||||
|
procedure UpdateNumFormatActions;
|
||||||
procedure UpdateTextRotationActions;
|
procedure UpdateTextRotationActions;
|
||||||
procedure UpdateVertAlignmentActions;
|
procedure UpdateVertAlignmentActions;
|
||||||
procedure UpdateWordwraps;
|
procedure UpdateWordwraps;
|
||||||
@ -193,6 +226,7 @@ const
|
|||||||
HORALIGN_TAG = 100;
|
HORALIGN_TAG = 100;
|
||||||
VERTALIGN_TAG = 110;
|
VERTALIGN_TAG = 110;
|
||||||
TEXTROT_TAG = 130;
|
TEXTROT_TAG = 130;
|
||||||
|
NUMFMT_TAG = 150; // needs 20
|
||||||
|
|
||||||
LEFT_BORDER_THIN = $0001;
|
LEFT_BORDER_THIN = $0001;
|
||||||
LEFT_BORDER_THICK = $0002;
|
LEFT_BORDER_THICK = $0002;
|
||||||
@ -307,6 +341,25 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.AcCopyFormatExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
cell: PCell;
|
||||||
|
r, c: Cardinal;
|
||||||
|
begin
|
||||||
|
with sWorksheetGrid1 do begin
|
||||||
|
if Workbook = nil then
|
||||||
|
exit;
|
||||||
|
|
||||||
|
if AcCopyFormat.Checked then begin
|
||||||
|
r := GetWorksheetRow(Row);
|
||||||
|
c := GetWorksheetCol(Col);
|
||||||
|
cell := Worksheet.FindCell(r, c);
|
||||||
|
if cell <> nil then
|
||||||
|
FCopiedFormat := cell^;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{ Changes the font of the selected cell by calling a standard font dialog. }
|
{ Changes the font of the selected cell by calling a standard font dialog. }
|
||||||
procedure TForm1.AcFontExecute(Sender: TObject);
|
procedure TForm1.AcFontExecute(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
@ -347,6 +400,47 @@ begin
|
|||||||
UpdateHorAlignmentActions;
|
UpdateHorAlignmentActions;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.AcIncDecDecimalsExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
cell: PCell;
|
||||||
|
decs: Byte;
|
||||||
|
begin
|
||||||
|
with sWorksheetGrid1 do begin
|
||||||
|
if Workbook = nil then
|
||||||
|
exit;
|
||||||
|
cell := Worksheet.FindCell(GetWorksheetRow(Row), GetWorksheetCol(Col));
|
||||||
|
if (cell <> nil) then begin
|
||||||
|
decs := cell^.NumberDecimals;
|
||||||
|
if (Sender = AcIncDecimals) then
|
||||||
|
Worksheet.WriteDecimals(cell, decs+1);
|
||||||
|
if (Sender = AcDecDecimals) and (decs > 0) then
|
||||||
|
Worksheet.WriteDecimals(cell, decs-1);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.AcNumFormatExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
nf: TsNumberFormat;
|
||||||
|
c, r: Cardinal;
|
||||||
|
begin
|
||||||
|
if sWorksheetGrid1.Worksheet = nil then
|
||||||
|
exit;
|
||||||
|
|
||||||
|
if TAction(Sender).Checked then
|
||||||
|
nf := TsNumberFormat(TAction(Sender).Tag - NUMFMT_TAG)
|
||||||
|
else
|
||||||
|
nf := nfGeneral;
|
||||||
|
|
||||||
|
with sWorksheetGrid1 do begin
|
||||||
|
c := GetWorksheetCol(Col);
|
||||||
|
r := GetWorksheetRow(Row);
|
||||||
|
Worksheet.WriteNumberFormat(r, c, nf);
|
||||||
|
end;
|
||||||
|
|
||||||
|
UpdateNumFormatActions;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TForm1.AcTextRotationExecute(Sender: TObject);
|
procedure TForm1.AcTextRotationExecute(Sender: TObject);
|
||||||
var
|
var
|
||||||
text_rot: TsTextRotation;
|
text_rot: TsTextRotation;
|
||||||
@ -543,10 +637,19 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.sWorksheetGrid1Selection(Sender: TObject; aCol, aRow: Integer);
|
procedure TForm1.sWorksheetGrid1Selection(Sender: TObject; aCol, aRow: Integer);
|
||||||
|
var
|
||||||
|
r, c: Cardinal;
|
||||||
begin
|
begin
|
||||||
if sWorksheetGrid1.Workbook = nil then
|
if sWorksheetGrid1.Workbook = nil then
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
|
if AcCopyFormat.Checked then begin
|
||||||
|
r := sWorksheetGrid1.GetWorksheetRow(ARow);
|
||||||
|
c := sWorksheetGrid1.GetWorksheetCol(ACol);
|
||||||
|
sWorksheetGrid1.Worksheet.CopyFormat(@FCopiedFormat, r, c);
|
||||||
|
AcCopyFormat.Checked := false;
|
||||||
|
end;
|
||||||
|
|
||||||
UpdateHorAlignmentActions;
|
UpdateHorAlignmentActions;
|
||||||
UpdateVertAlignmentActions;
|
UpdateVertAlignmentActions;
|
||||||
UpdateWordwraps;
|
UpdateWordwraps;
|
||||||
@ -555,6 +658,7 @@ begin
|
|||||||
UpdateFontNameIndex;
|
UpdateFontNameIndex;
|
||||||
UpdateFontSizeIndex;
|
UpdateFontSizeIndex;
|
||||||
UpdateFontStyleActions;
|
UpdateFontStyleActions;
|
||||||
|
UpdateNumFormatActions;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.UpdateBackgroundColorIndex;
|
procedure TForm1.UpdateBackgroundColorIndex;
|
||||||
@ -615,6 +719,30 @@ begin
|
|||||||
AcFontStrikeout.Checked := fssStrikeOut in style;
|
AcFontStrikeout.Checked := fssStrikeOut in style;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.UpdateNumFormatActions;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
ac: TAction;
|
||||||
|
nf: TsNumberFormat;
|
||||||
|
cell: PCell;
|
||||||
|
r,c: Cardinal;
|
||||||
|
begin
|
||||||
|
with sWorksheetGrid1 do begin
|
||||||
|
r := GetWorksheetRow(Row);
|
||||||
|
c := GetWorksheetCol(Col);
|
||||||
|
cell := Worksheet.FindCell(r, c);
|
||||||
|
if (cell = nil) or (cell^.ContentType <> cctNumber) then
|
||||||
|
nf := nfGeneral
|
||||||
|
else
|
||||||
|
nf := cell^.NumberFormat;
|
||||||
|
for i:=0 to ActionList1.ActionCount-1 do begin
|
||||||
|
ac := TAction(ActionList1.Actions[i]);
|
||||||
|
if (ac.Tag >= NUMFMT_TAG) and (ac.Tag < NUMFMT_TAG + 20) then
|
||||||
|
ac.Checked := ((ac.Tag - NUMFMT_TAG) = ord(nf));
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TForm1.UpdateTextRotationActions;
|
procedure TForm1.UpdateTextRotationActions;
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
|
@ -14,7 +14,7 @@ unit fpspreadsheet;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, fpimage, AVL_Tree, avglvltree, lconvencoding, fpsutils;
|
Classes, SysUtils, fpimage, AVL_Tree, avglvltree, lconvencoding;
|
||||||
|
|
||||||
type
|
type
|
||||||
TsSpreadsheetFormat = (sfExcel2, sfExcel3, sfExcel4, sfExcel5, sfExcel8,
|
TsSpreadsheetFormat = (sfExcel2, sfExcel3, sfExcel4, sfExcel5, sfExcel8,
|
||||||
@ -105,6 +105,9 @@ type
|
|||||||
fekOpSUM {Unary sum operation. Note: CANNOT be used for summing sell contents; use fekSUM}
|
fekOpSUM {Unary sum operation. Note: CANNOT be used for summing sell contents; use fekSUM}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
TsRelFlag = (rfRelRow, rfRelCol, rfRelRow2, rfRelCol2);
|
||||||
|
TsRelFlags = set of TsRelFlag;
|
||||||
|
|
||||||
TsFormulaElement = record
|
TsFormulaElement = record
|
||||||
ElementKind: TFEKind;
|
ElementKind: TFEKind;
|
||||||
Row, Row2: Word; // zero-based
|
Row, Row2: Word; // zero-based
|
||||||
@ -292,6 +295,7 @@ type
|
|||||||
BoolValue: Boolean;
|
BoolValue: Boolean;
|
||||||
StatusValue: Byte;
|
StatusValue: Byte;
|
||||||
{ Formatting fields }
|
{ Formatting fields }
|
||||||
|
{ When adding/deleting formatting fields don't forget to update CopyFormat! }
|
||||||
UsedFormattingFields: TsUsedFormattingFields;
|
UsedFormattingFields: TsUsedFormattingFields;
|
||||||
FontIndex: Integer;
|
FontIndex: Integer;
|
||||||
TextRotation: TsTextRotation;
|
TextRotation: TsTextRotation;
|
||||||
@ -360,6 +364,7 @@ type
|
|||||||
class function CellPosToText(ARow, ACol: Cardinal): string;
|
class function CellPosToText(ARow, ACol: Cardinal): string;
|
||||||
{ Data manipulation methods - For Cells }
|
{ Data manipulation methods - For Cells }
|
||||||
procedure CopyCell(AFromRow, AFromCol, AToRow, AToCol: Cardinal; AFromWorksheet: TsWorksheet);
|
procedure CopyCell(AFromRow, AFromCol, AToRow, AToCol: Cardinal; AFromWorksheet: TsWorksheet);
|
||||||
|
procedure CopyFormat(AFormat: PCell; AToRow, AToCol: Cardinal);
|
||||||
function FindCell(ARow, ACol: Cardinal): PCell;
|
function FindCell(ARow, ACol: Cardinal): PCell;
|
||||||
function GetCell(ARow, ACol: Cardinal): PCell;
|
function GetCell(ARow, ACol: Cardinal): PCell;
|
||||||
function GetCellCount: Cardinal;
|
function GetCellCount: Cardinal;
|
||||||
@ -385,12 +390,14 @@ type
|
|||||||
procedure WriteBoolValue(ARow, ACol: Cardinal; AValue: Boolean);
|
procedure WriteBoolValue(ARow, ACol: Cardinal; AValue: Boolean);
|
||||||
procedure WriteDateTime(ARow, ACol: Cardinal; AValue: TDateTime;
|
procedure WriteDateTime(ARow, ACol: Cardinal; AValue: TDateTime;
|
||||||
AFormat: TsNumberFormat = nfShortDateTime; AFormatStr: String = '');
|
AFormat: TsNumberFormat = nfShortDateTime; AFormatStr: String = '');
|
||||||
|
procedure WriteDecimals(ARow, ACol: Cardinal; ADecimals: byte); overload;
|
||||||
|
procedure WriteDecimals(ACell: PCell; ADecimals: Byte); overload;
|
||||||
procedure WriteErrorValue(ARow, ACol: Cardinal; AValue: TErrorValue);
|
procedure WriteErrorValue(ARow, ACol: Cardinal; AValue: TErrorValue);
|
||||||
procedure WriteFormula(ARow, ACol: Cardinal; AFormula: TsFormula);
|
procedure WriteFormula(ARow, ACol: Cardinal; AFormula: TsFormula);
|
||||||
procedure WriteRPNFormula(ARow, ACol: Cardinal; AFormula: TsRPNFormula);
|
procedure WriteRPNFormula(ARow, ACol: Cardinal; AFormula: TsRPNFormula);
|
||||||
{ Writing of cell attributes }
|
{ Writing of cell attributes }
|
||||||
procedure WriteNumberFormat(ARow, ACol: Cardinal; ANumberFormat: TsNumberFormat;
|
procedure WriteNumberFormat(ARow, ACol: Cardinal; ANumberFormat: TsNumberFormat;
|
||||||
const AFormatString: String);
|
const AFormatString: String = '');
|
||||||
function WriteFont(ARow, ACol: Cardinal; const AFontName: String;
|
function WriteFont(ARow, ACol: Cardinal; const AFontName: String;
|
||||||
AFontSize: Single; AFontStyle: TsFontStyles; AFontColor: TsColor): Integer; overload;
|
AFontSize: Single; AFontStyle: TsFontStyles; AFontColor: TsColor): Integer; overload;
|
||||||
procedure WriteFont(ARow, ACol: Cardinal; AFontIndex: Integer); overload;
|
procedure WriteFont(ARow, ACol: Cardinal; AFontIndex: Integer); overload;
|
||||||
@ -694,7 +701,7 @@ procedure MakeLEPalette(APalette: PsPalette; APaletteSize: Integer);
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Math, StrUtils;
|
Math, StrUtils, fpsutils;
|
||||||
|
|
||||||
{ Translatable strings }
|
{ Translatable strings }
|
||||||
resourcestring
|
resourcestring
|
||||||
@ -921,10 +928,21 @@ end;
|
|||||||
procedure TsWorksheet.CopyCell(AFromRow, AFromCol, AToRow, AToCol: Cardinal;
|
procedure TsWorksheet.CopyCell(AFromRow, AFromCol, AToRow, AToCol: Cardinal;
|
||||||
AFromWorksheet: TsWorksheet);
|
AFromWorksheet: TsWorksheet);
|
||||||
var
|
var
|
||||||
|
lSrcCell, lDestCell: PCell;
|
||||||
|
{
|
||||||
lCurStr: String;
|
lCurStr: String;
|
||||||
lCurUsedFormatting: TsUsedFormattingFields;
|
lCurUsedFormatting: TsUsedFormattingFields;
|
||||||
lCurColor: TsColor;
|
lCurColor: TsColor;
|
||||||
|
}
|
||||||
begin
|
begin
|
||||||
|
lSrcCell := AFromWorksheet.FindCell(AFromRow, AFromCol);
|
||||||
|
lDestCell := GetCell(AToRow, AToCol);
|
||||||
|
lDestCell^ := lSrcCell^;
|
||||||
|
lDestCell^.Row := AToRow;
|
||||||
|
lDestCell^.Col := AToCol;
|
||||||
|
ChangedCell(AToRow, AToCol);
|
||||||
|
ChangedFont(AToRow, AToCol);
|
||||||
|
{
|
||||||
lCurStr := AFromWorksheet.ReadAsUTF8Text(AFromRow, AFromCol);
|
lCurStr := AFromWorksheet.ReadAsUTF8Text(AFromRow, AFromCol);
|
||||||
lCurUsedFormatting := AFromWorksheet.ReadUsedFormatting(AFromRow, AFromCol);
|
lCurUsedFormatting := AFromWorksheet.ReadUsedFormatting(AFromRow, AFromCol);
|
||||||
lCurColor := AFromWorksheet.ReadBackgroundColor(AFromRow, AFromCol);
|
lCurColor := AFromWorksheet.ReadBackgroundColor(AFromRow, AFromCol);
|
||||||
@ -934,6 +952,34 @@ begin
|
|||||||
begin
|
begin
|
||||||
WriteBackgroundColor(AToRow, AToCol, lCurColor);
|
WriteBackgroundColor(AToRow, AToCol, lCurColor);
|
||||||
end;
|
end;
|
||||||
|
}
|
||||||
|
end;
|
||||||
|
|
||||||
|
{@@
|
||||||
|
Copies all format parameters from the format cell to another cell.
|
||||||
|
}
|
||||||
|
procedure TsWorksheet.CopyFormat(AFormat: PCell; AToRow, AToCol: Cardinal);
|
||||||
|
var
|
||||||
|
cell: PCell;
|
||||||
|
begin
|
||||||
|
if AFormat = nil then
|
||||||
|
exit;
|
||||||
|
|
||||||
|
cell := GetCell(AToRow, AToCol);
|
||||||
|
cell^.UsedFormattingFields := AFormat^.UsedFormattingFields;
|
||||||
|
cell^.BackgroundColor := AFormat^.BackgroundColor;
|
||||||
|
cell^.Border := AFormat^.Border;
|
||||||
|
cell^.BorderStyles := AFormat^.BorderStyles;
|
||||||
|
cell^.FontIndex := AFormat^.FontIndex;
|
||||||
|
cell^.HorAlignment := AFormat^.HorAlignment;
|
||||||
|
cell^.VertAlignment := AFormat^.VertAlignment;
|
||||||
|
cell^.TextRotation := AFormat^.TextRotation;
|
||||||
|
cell^.NumberFormat := AFormat^.NumberFormat;
|
||||||
|
cell^.NumberFormatStr := AFormat^.NumberFormatStr;
|
||||||
|
cell^.NumberDecimals := AFormat^.NumberDecimals;
|
||||||
|
|
||||||
|
ChangedCell(AToRow, AToCol);
|
||||||
|
ChangedFont(AToRow, AToCol);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{@@
|
{@@
|
||||||
@ -1354,7 +1400,6 @@ procedure TsWorksheet.WriteNumber(ARow, ACol: Cardinal; ANumber: double;
|
|||||||
AFormat: TsNumberFormat = nfGeneral; ADecimals: Word = 2);
|
AFormat: TsNumberFormat = nfGeneral; ADecimals: Word = 2);
|
||||||
var
|
var
|
||||||
ACell: PCell;
|
ACell: PCell;
|
||||||
decs: String;
|
|
||||||
begin
|
begin
|
||||||
ACell := GetCell(ARow, ACol);
|
ACell := GetCell(ARow, ACol);
|
||||||
|
|
||||||
@ -1364,20 +1409,7 @@ begin
|
|||||||
if AFormat <> nfGeneral then begin
|
if AFormat <> nfGeneral then begin
|
||||||
Include(ACell^.UsedFormattingFields, uffNumberFormat);
|
Include(ACell^.UsedFormattingFields, uffNumberFormat);
|
||||||
ACell^.NumberFormat := AFormat;
|
ACell^.NumberFormat := AFormat;
|
||||||
decs := DupeString('0', ADecimals);
|
WriteDecimals(ACell, ADecimals);
|
||||||
if ADecimals > 0 then decs := '.' + decs;
|
|
||||||
case AFormat of
|
|
||||||
nfFixed:
|
|
||||||
ACell^.NumberFormatStr := '0' + decs;
|
|
||||||
nfFixedTh:
|
|
||||||
ACell^.NumberFormatStr := '#,##0' + decs;
|
|
||||||
nfExp:
|
|
||||||
ACell^.NumberFormatStr := '0' + decs + 'E+00';
|
|
||||||
nfSci:
|
|
||||||
ACell^.NumberFormatStr := '##0' + decs + 'E+0';
|
|
||||||
nfPercentage:
|
|
||||||
ACell^.NumberFormatStr := '0' + decs + '%';
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
ChangedCell(ARow, ACol);
|
ChangedCell(ARow, ACol);
|
||||||
end;
|
end;
|
||||||
@ -1499,6 +1531,20 @@ begin
|
|||||||
ChangedCell(ARow, ACol);
|
ChangedCell(ARow, ACol);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TsWorksheet.WriteDecimals(ARow, ACol: Cardinal; ADecimals: Byte);
|
||||||
|
begin
|
||||||
|
WriteDecimals(FindCell(ARow, ACol), ADecimals);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TsWorksheet.WriteDecimals(ACell: PCell; ADecimals: Byte);
|
||||||
|
begin
|
||||||
|
if (ACell <> nil) and (ACell^.ContentType = cctNumber) then begin
|
||||||
|
ACell^.NumberDecimals := ADecimals;
|
||||||
|
ACell^.NumberFormatStr := BuildNumFormatString(ACell^.NumberFormat, ADecimals);
|
||||||
|
ChangedCell(ACell^.Row, ACell^.Col);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{@@
|
{@@
|
||||||
Writes a cell with an error.
|
Writes a cell with an error.
|
||||||
|
|
||||||
@ -1544,13 +1590,16 @@ end;
|
|||||||
@see TsNumberFormat
|
@see TsNumberFormat
|
||||||
}
|
}
|
||||||
procedure TsWorksheet.WriteNumberFormat(ARow, ACol: Cardinal;
|
procedure TsWorksheet.WriteNumberFormat(ARow, ACol: Cardinal;
|
||||||
ANumberFormat: TsNumberFormat; const AFormatString: String);
|
ANumberFormat: TsNumberFormat; const AFormatString: String = '');
|
||||||
var
|
var
|
||||||
ACell: PCell;
|
ACell: PCell;
|
||||||
begin
|
begin
|
||||||
ACell := GetCell(ARow, ACol);
|
ACell := GetCell(ARow, ACol);
|
||||||
Include(ACell^.UsedFormattingFields, uffNumberFormat);
|
Include(ACell^.UsedFormattingFields, uffNumberFormat);
|
||||||
ACell^.NumberFormat := ANumberFormat;
|
ACell^.NumberFormat := ANumberFormat;
|
||||||
|
if (AFormatString = '') then
|
||||||
|
ACell^.NumberFormatStr := BuildNumFormatString(ANumberFormat, ACell^.NumberDecimals)
|
||||||
|
else
|
||||||
ACell^.NumberFormatStr := AFormatString;
|
ACell^.NumberFormatStr := AFormatString;
|
||||||
ChangedCell(ARow, ACol);
|
ChangedCell(ARow, ACol);
|
||||||
end;
|
end;
|
||||||
|
@ -12,15 +12,12 @@ unit fpsutils;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, StrUtils;
|
Classes, SysUtils, StrUtils, fpspreadsheet;
|
||||||
|
|
||||||
// Exported types
|
// Exported types
|
||||||
type
|
type
|
||||||
TsSelectionDirection = (fpsVerticalSelection, fpsHorizontalSelection);
|
TsSelectionDirection = (fpsVerticalSelection, fpsHorizontalSelection);
|
||||||
|
|
||||||
TsRelFlag = (rfRelRow, rfRelCol, rfRelRow2, rfRelCol2);
|
|
||||||
TsRelFlags = set of TsRelFlag;
|
|
||||||
|
|
||||||
const
|
const
|
||||||
// Date formatting string for unambiguous date/time display as strings
|
// Date formatting string for unambiguous date/time display as strings
|
||||||
// Can be used for text output when date/time cell support is not available
|
// Can be used for text output when date/time cell support is not available
|
||||||
@ -71,6 +68,8 @@ function IsDateFormat(s: String; out IsLong: Boolean): Boolean;
|
|||||||
function IsTimeFormat(s: String; out isLong, isAMPM, isInterval: Boolean;
|
function IsTimeFormat(s: String; out isLong, isAMPM, isInterval: Boolean;
|
||||||
out SecDecimals: Word): Boolean;
|
out SecDecimals: Word): Boolean;
|
||||||
|
|
||||||
|
function BuildNumFormatString(ANumberFormat: TsNumberFormat; ADecimals: Byte): String;
|
||||||
|
|
||||||
function SciFloat(AValue: Double; ADecimals: Word): String;
|
function SciFloat(AValue: Double; ADecimals: Word): String;
|
||||||
//function TimeIntervalToString(AValue: TDateTime; AFormatStr: String): String;
|
//function TimeIntervalToString(AValue: TDateTime; AFormatStr: String): String;
|
||||||
procedure MakeTimeIntervalMask(Src: String; var Dest: String);
|
procedure MakeTimeIntervalMask(Src: String; var Dest: String);
|
||||||
@ -732,6 +731,31 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ Builds a number format string from the numberformat code and the count of
|
||||||
|
decimals. }
|
||||||
|
function BuildNumFormatString(ANumberFormat: TsNumberFormat;
|
||||||
|
ADecimals: Byte): String;
|
||||||
|
var
|
||||||
|
decs: String;
|
||||||
|
begin
|
||||||
|
decs := DupeString('0', ADecimals);
|
||||||
|
if ADecimals > 0 then decs := '.' + decs;
|
||||||
|
case ANumberFormat of
|
||||||
|
nfFixed:
|
||||||
|
Result := '0' + decs;
|
||||||
|
nfFixedTh:
|
||||||
|
Result := '#,##0' + decs;
|
||||||
|
nfExp:
|
||||||
|
Result := '0' + decs + 'E+00';
|
||||||
|
nfSci:
|
||||||
|
Result := '##0' + decs + 'E+0';
|
||||||
|
nfPercentage:
|
||||||
|
Result := '0' + decs + '%';
|
||||||
|
else
|
||||||
|
Result := '';
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{ Formats the number AValue in "scientific" format with the given number of
|
{ Formats the number AValue in "scientific" format with the given number of
|
||||||
decimals. "Scientific" is the same as "exponential", but with exponents rounded
|
decimals. "Scientific" is the same as "exponential", but with exponents rounded
|
||||||
to multiples of 3 (like for "kilo" - "Mega" - "Giga" etc.). }
|
to multiples of 3 (like for "kilo" - "Mega" - "Giga" etc.). }
|
||||||
|
@ -561,7 +561,7 @@ begin
|
|||||||
AddFormat(45, nfFmtDateTime, 'nn:ss');
|
AddFormat(45, nfFmtDateTime, 'nn:ss');
|
||||||
AddFormat(46, nfTimeInterval, '[h]:nn:ss');
|
AddFormat(46, nfTimeInterval, '[h]:nn:ss');
|
||||||
AddFormat(47, nfFmtDateTime, 'nn:ss.z'); // z will be replace by 0 later
|
AddFormat(47, nfFmtDateTime, 'nn:ss.z'); // z will be replace by 0 later
|
||||||
AddFormat(48, nfSci, '##0.0E+0', 1);
|
AddFormat(48, nfSci, '##0.0E+00', 1);
|
||||||
// 49 ("Text") not supported
|
// 49 ("Text") not supported
|
||||||
|
|
||||||
// All indexes from 0 to 163 are reserved for built-in formats.
|
// All indexes from 0 to 163 are reserved for built-in formats.
|
||||||
@ -579,13 +579,17 @@ var
|
|||||||
fmt: String;
|
fmt: String;
|
||||||
begin
|
begin
|
||||||
fmt := Lowercase(AFormatString);
|
fmt := Lowercase(AFormatString);
|
||||||
{ Check the built-in formats first }
|
{ Check the built-in formats first:
|
||||||
|
The prefix "[$-F400]" before the formatting string means that the system's
|
||||||
|
long Time format string is used. }
|
||||||
if (pos('[$-F400]', AFormatString) = 1) then begin
|
if (pos('[$-F400]', AFormatString) = 1) then begin
|
||||||
ANumFormat := nfLongTime;
|
ANumFormat := nfLongTime;
|
||||||
AFormatString := ''; // will be replaced by system's format setting
|
AFormatString := ''; // will be replaced by system's format setting
|
||||||
ADecimals := 0;
|
ADecimals := 0;
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
{ Excel often has the locale ID [$-409] (for Germany) in front of the format
|
||||||
|
string. We currently ignore this because it confuses fpc. }
|
||||||
if (pos('[$', fmt) = 1) then begin
|
if (pos('[$', fmt) = 1) then begin
|
||||||
if (pos('h:mm:ss\', fmt) > 0) then begin
|
if (pos('h:mm:ss\', fmt) > 0) then begin
|
||||||
// long time format
|
// long time format
|
||||||
|
Reference in New Issue
Block a user