You've already forked lazarus-ccr
fpspreadsheet: Add support for horizontal and vertical text alignment in cells for biff8 and fpspreadsheetgrid.
Fix failure to reckognize file format in case of uppercase filename. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2955 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -52,7 +52,7 @@ begin
|
|||||||
lCell^.BackgroundColor := scPURPLE;
|
lCell^.BackgroundColor := scPURPLE;
|
||||||
lCell^.UsedFormattingFields := [uffBackgroundColor];
|
lCell^.UsedFormattingFields := [uffBackgroundColor];
|
||||||
|
|
||||||
// Word-wrapped long text
|
// Word-wrapped long text in D7
|
||||||
MyWorksheet.WriteUTF8Text(6, 3, 'This is a very, very, very, very long text.');
|
MyWorksheet.WriteUTF8Text(6, 3, 'This is a very, very, very, very long text.');
|
||||||
MyWorksheet.WriteUsedFormatting(6, 3, [uffWordwrap]);
|
MyWorksheet.WriteUsedFormatting(6, 3, [uffWordwrap]);
|
||||||
|
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
<RunParams>
|
<RunParams>
|
||||||
<local>
|
<local>
|
||||||
<FormatVersion Value="1"/>
|
<FormatVersion Value="1"/>
|
||||||
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
|
|
||||||
</local>
|
</local>
|
||||||
</RunParams>
|
</RunParams>
|
||||||
<RequiredPackages Count="2">
|
<RequiredPackages Count="2">
|
||||||
@ -38,7 +37,7 @@
|
|||||||
<PackageName Value="LCL"/>
|
<PackageName Value="LCL"/>
|
||||||
</Item2>
|
</Item2>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="23">
|
<Units Count="24">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="fpsgrid.lpr"/>
|
<Filename Value="fpsgrid.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
@ -47,7 +46,7 @@
|
|||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<CursorPos X="1" Y="11"/>
|
<CursorPos X="1" Y="11"/>
|
||||||
<UsageCount Value="88"/>
|
<UsageCount Value="93"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit0>
|
</Unit0>
|
||||||
<Unit1>
|
<Unit1>
|
||||||
@ -59,20 +58,20 @@
|
|||||||
<UnitName Value="mainform"/>
|
<UnitName Value="mainform"/>
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="1"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="50"/>
|
<TopLine Value="1"/>
|
||||||
<CursorPos X="30" Y="57"/>
|
<CursorPos X="8" Y="1"/>
|
||||||
<UsageCount Value="88"/>
|
<UsageCount Value="93"/>
|
||||||
<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="9"/>
|
<EditorIndex Value="3"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="161"/>
|
<TopLine Value="464"/>
|
||||||
<CursorPos X="3" Y="180"/>
|
<CursorPos X="9" Y="496"/>
|
||||||
<UsageCount Value="42"/>
|
<UsageCount Value="44"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit2>
|
</Unit2>
|
||||||
<Unit3>
|
<Unit3>
|
||||||
@ -80,9 +79,9 @@
|
|||||||
<UnitName Value="fpspreadsheetgrid"/>
|
<UnitName Value="fpspreadsheetgrid"/>
|
||||||
<EditorIndex Value="2"/>
|
<EditorIndex Value="2"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="206"/>
|
<TopLine Value="1"/>
|
||||||
<CursorPos X="45" Y="223"/>
|
<CursorPos X="52" Y="6"/>
|
||||||
<UsageCount Value="43"/>
|
<UsageCount Value="45"/>
|
||||||
<Bookmarks Count="1">
|
<Bookmarks Count="1">
|
||||||
<Item0 X="1" Y="194" ID="1"/>
|
<Item0 X="1" Y="194" ID="1"/>
|
||||||
</Bookmarks>
|
</Bookmarks>
|
||||||
@ -138,12 +137,10 @@
|
|||||||
<Unit10>
|
<Unit10>
|
||||||
<Filename Value="..\..\wikitable.pas"/>
|
<Filename Value="..\..\wikitable.pas"/>
|
||||||
<UnitName Value="wikitable"/>
|
<UnitName Value="wikitable"/>
|
||||||
<EditorIndex Value="10"/>
|
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="48"/>
|
<TopLine Value="48"/>
|
||||||
<CursorPos X="41" Y="60"/>
|
<CursorPos X="41" Y="60"/>
|
||||||
<UsageCount Value="20"/>
|
<UsageCount Value="21"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit10>
|
</Unit10>
|
||||||
<Unit11>
|
<Unit11>
|
||||||
<Filename Value="..\..\fpsopendocument.pas"/>
|
<Filename Value="..\..\fpsopendocument.pas"/>
|
||||||
@ -156,58 +153,50 @@
|
|||||||
<Unit12>
|
<Unit12>
|
||||||
<Filename Value="d:\lazarus-svn\lcl\grids.pas"/>
|
<Filename Value="d:\lazarus-svn\lcl\grids.pas"/>
|
||||||
<UnitName Value="Grids"/>
|
<UnitName Value="Grids"/>
|
||||||
<EditorIndex Value="13"/>
|
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="4124"/>
|
<TopLine Value="4124"/>
|
||||||
<CursorPos X="3" Y="4129"/>
|
<CursorPos X="3" Y="4129"/>
|
||||||
<UsageCount Value="20"/>
|
<UsageCount Value="21"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit12>
|
</Unit12>
|
||||||
<Unit13>
|
<Unit13>
|
||||||
<Filename Value="..\..\fpsutils.pas"/>
|
<Filename Value="..\..\fpsutils.pas"/>
|
||||||
<UnitName Value="fpsutils"/>
|
<UnitName Value="fpsutils"/>
|
||||||
<EditorIndex Value="12"/>
|
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="413"/>
|
<TopLine Value="413"/>
|
||||||
<CursorPos X="45" Y="447"/>
|
<CursorPos X="45" Y="447"/>
|
||||||
<UsageCount Value="19"/>
|
<UsageCount Value="20"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit13>
|
</Unit13>
|
||||||
<Unit14>
|
<Unit14>
|
||||||
<Filename Value="d:\lazarus-svn\lcl\include\canvas.inc"/>
|
<Filename Value="d:\lazarus-svn\lcl\include\canvas.inc"/>
|
||||||
<EditorIndex Value="4"/>
|
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="1212"/>
|
<TopLine Value="1212"/>
|
||||||
<CursorPos X="3" Y="1218"/>
|
<CursorPos X="3" Y="1218"/>
|
||||||
<UsageCount Value="12"/>
|
<UsageCount Value="13"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit14>
|
</Unit14>
|
||||||
<Unit15>
|
<Unit15>
|
||||||
<Filename Value="d:\lazarus-svn\lcl\graphics.pp"/>
|
<Filename Value="d:\lazarus-svn\lcl\graphics.pp"/>
|
||||||
<UnitName Value="Graphics"/>
|
<UnitName Value="Graphics"/>
|
||||||
<EditorIndex Value="3"/>
|
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="84"/>
|
<TopLine Value="81"/>
|
||||||
<CursorPos X="3" Y="101"/>
|
<CursorPos X="3" Y="100"/>
|
||||||
<UsageCount Value="12"/>
|
<UsageCount Value="13"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit15>
|
</Unit15>
|
||||||
<Unit16>
|
<Unit16>
|
||||||
<Filename Value="d:\lazarus-svn\fpc\2.6.2\source\rtl\objpas\classes\classesh.inc"/>
|
<Filename Value="d:\lazarus-svn\fpc\2.6.2\source\rtl\objpas\classes\classesh.inc"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="76"/>
|
<TopLine Value="76"/>
|
||||||
<CursorPos X="3" Y="95"/>
|
<CursorPos X="28" Y="88"/>
|
||||||
<UsageCount Value="12"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit16>
|
</Unit16>
|
||||||
<Unit17>
|
<Unit17>
|
||||||
<Filename Value="..\..\xlsbiff8.pas"/>
|
<Filename Value="..\..\xlsbiff8.pas"/>
|
||||||
<UnitName Value="xlsbiff8"/>
|
<UnitName Value="xlsbiff8"/>
|
||||||
<IsVisibleTab Value="True"/>
|
<IsVisibleTab Value="True"/>
|
||||||
<EditorIndex Value="5"/>
|
<EditorIndex Value="4"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="1518"/>
|
<TopLine Value="375"/>
|
||||||
<CursorPos X="38" Y="1529"/>
|
<CursorPos X="1" Y="367"/>
|
||||||
<UsageCount Value="17"/>
|
<UsageCount Value="19"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit17>
|
</Unit17>
|
||||||
<Unit18>
|
<Unit18>
|
||||||
@ -220,164 +209,164 @@
|
|||||||
</Unit18>
|
</Unit18>
|
||||||
<Unit19>
|
<Unit19>
|
||||||
<Filename Value="d:\lazarus-svn\lcl\include\wincontrol.inc"/>
|
<Filename Value="d:\lazarus-svn\lcl\include\wincontrol.inc"/>
|
||||||
<EditorIndex Value="8"/>
|
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="7344"/>
|
<TopLine Value="7344"/>
|
||||||
<CursorPos X="30" Y="7349"/>
|
<CursorPos X="30" Y="7349"/>
|
||||||
<UsageCount Value="14"/>
|
<UsageCount Value="15"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit19>
|
</Unit19>
|
||||||
<Unit20>
|
<Unit20>
|
||||||
<Filename Value="..\..\xlscommon.pas"/>
|
<Filename Value="..\..\xlscommon.pas"/>
|
||||||
<UnitName Value="xlscommon"/>
|
<UnitName Value="xlscommon"/>
|
||||||
<EditorIndex Value="11"/>
|
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="464"/>
|
<TopLine Value="918"/>
|
||||||
<CursorPos X="1" Y="485"/>
|
<CursorPos X="52" Y="946"/>
|
||||||
<UsageCount Value="14"/>
|
<UsageCount Value="15"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit20>
|
</Unit20>
|
||||||
<Unit21>
|
<Unit21>
|
||||||
<Filename Value="..\..\xlsbiff5.pas"/>
|
<Filename Value="..\..\xlsbiff5.pas"/>
|
||||||
<UnitName Value="xlsbiff5"/>
|
<UnitName Value="xlsbiff5"/>
|
||||||
<EditorIndex Value="6"/>
|
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="1110"/>
|
<TopLine Value="1110"/>
|
||||||
<CursorPos X="1" Y="1134"/>
|
<CursorPos X="1" Y="1134"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="11"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit21>
|
</Unit21>
|
||||||
<Unit22>
|
<Unit22>
|
||||||
<Filename Value="..\..\xlsbiff2.pas"/>
|
<Filename Value="..\..\xlsbiff2.pas"/>
|
||||||
<UnitName Value="xlsbiff2"/>
|
<UnitName Value="xlsbiff2"/>
|
||||||
<EditorIndex Value="7"/>
|
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="93"/>
|
<TopLine Value="93"/>
|
||||||
<CursorPos X="35" Y="83"/>
|
<CursorPos X="35" Y="83"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="11"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit22>
|
</Unit22>
|
||||||
|
<Unit23>
|
||||||
|
<Filename Value="d:\lazarus-svn\lcl\lclproc.pas"/>
|
||||||
|
<UnitName Value="LCLProc"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="841"/>
|
||||||
|
<CursorPos X="19" Y="852"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
</Unit23>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="30" HistoryIndex="29">
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
<Position1>
|
<Position1>
|
||||||
<Filename Value="..\..\fpspreadsheetgrid.pas"/>
|
<Filename Value="..\..\fpspreadsheetgrid.pas"/>
|
||||||
<Caret Line="193" Column="14" TopLine="186"/>
|
<Caret Line="422" Column="1" TopLine="400"/>
|
||||||
</Position1>
|
</Position1>
|
||||||
<Position2>
|
<Position2>
|
||||||
<Filename Value="..\..\fpspreadsheetgrid.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="194" Column="1" TopLine="186"/>
|
<Caret Line="1446" Column="1" TopLine="1427"/>
|
||||||
</Position2>
|
</Position2>
|
||||||
<Position3>
|
<Position3>
|
||||||
<Filename Value="..\..\fpspreadsheetgrid.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="180" Column="58" TopLine="171"/>
|
<Caret Line="1447" Column="1" TopLine="1427"/>
|
||||||
</Position3>
|
</Position3>
|
||||||
<Position4>
|
<Position4>
|
||||||
<Filename Value="..\..\fpsutils.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="56" Column="1" TopLine="34"/>
|
<Caret Line="1365" Column="1" TopLine="1346"/>
|
||||||
</Position4>
|
</Position4>
|
||||||
<Position5>
|
<Position5>
|
||||||
<Filename Value="..\..\fpsutils.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="445" Column="1" TopLine="411"/>
|
<Caret Line="1366" Column="1" TopLine="1346"/>
|
||||||
</Position5>
|
</Position5>
|
||||||
<Position6>
|
<Position6>
|
||||||
<Filename Value="..\..\fpsutils.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="59" Column="1" TopLine="21"/>
|
<Caret Line="1367" Column="1" TopLine="1346"/>
|
||||||
</Position6>
|
</Position6>
|
||||||
<Position7>
|
<Position7>
|
||||||
<Filename Value="..\..\fpspreadsheetgrid.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="191" Column="1" TopLine="181"/>
|
<Caret Line="1368" Column="1" TopLine="1346"/>
|
||||||
</Position7>
|
</Position7>
|
||||||
<Position8>
|
<Position8>
|
||||||
<Filename Value="..\..\xlsbiff8.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="1905" Column="39" TopLine="1869"/>
|
<Caret Line="1375" Column="1" TopLine="1346"/>
|
||||||
</Position8>
|
</Position8>
|
||||||
<Position9>
|
<Position9>
|
||||||
<Filename Value="..\..\xlsbiff5.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="1372" Column="3" TopLine="1367"/>
|
<Caret Line="1448" Column="1" TopLine="1429"/>
|
||||||
</Position9>
|
</Position9>
|
||||||
<Position10>
|
<Position10>
|
||||||
<Filename Value="..\..\xlsbiff8.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="205" Column="1" TopLine="186"/>
|
<Caret Line="1450" Column="1" TopLine="1429"/>
|
||||||
</Position10>
|
</Position10>
|
||||||
<Position11>
|
<Position11>
|
||||||
<Filename Value="..\..\xlsbiff8.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="204" Column="23" TopLine="186"/>
|
<Caret Line="1454" Column="1" TopLine="1429"/>
|
||||||
</Position11>
|
</Position11>
|
||||||
<Position12>
|
<Position12>
|
||||||
<Filename Value="..\..\xlsbiff2.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="464" Column="1" TopLine="435"/>
|
<Caret Line="1455" Column="1" TopLine="1429"/>
|
||||||
</Position12>
|
</Position12>
|
||||||
<Position13>
|
<Position13>
|
||||||
<Filename Value="..\..\fpspreadsheet.pas"/>
|
<Filename Value="..\..\xlsbiff8.pas"/>
|
||||||
<Caret Line="128" Column="45" TopLine="125"/>
|
<Caret Line="2178" Column="1" TopLine="2171"/>
|
||||||
</Position13>
|
</Position13>
|
||||||
<Position14>
|
<Position14>
|
||||||
<Filename Value="..\..\xlsbiff8.pas"/>
|
<Filename Value="mainform.pas"/>
|
||||||
<Caret Line="148" Column="28" TopLine="148"/>
|
<Caret Line="115" Column="21" TopLine="87"/>
|
||||||
</Position14>
|
</Position14>
|
||||||
<Position15>
|
<Position15>
|
||||||
<Filename Value="..\..\fpspreadsheetgrid.pas"/>
|
<Filename Value="..\..\fpspreadsheetgrid.pas"/>
|
||||||
<Caret Line="222" Column="29" TopLine="188"/>
|
<Caret Line="420" Column="3" TopLine="410"/>
|
||||||
</Position15>
|
</Position15>
|
||||||
<Position16>
|
<Position16>
|
||||||
<Filename Value="..\..\fpspreadsheetgrid.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="221" Column="47" TopLine="203"/>
|
<Caret Line="1476" Column="55" TopLine="1413"/>
|
||||||
</Position16>
|
</Position16>
|
||||||
<Position17>
|
<Position17>
|
||||||
<Filename Value="..\..\fpspreadsheetgrid.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="200" Column="3" TopLine="180"/>
|
<Caret Line="498" Column="36" TopLine="479"/>
|
||||||
</Position17>
|
</Position17>
|
||||||
<Position18>
|
<Position18>
|
||||||
<Filename Value="..\..\fpspreadsheetgrid.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="222" Column="45" TopLine="196"/>
|
<Caret Line="1342" Column="11" TopLine="1308"/>
|
||||||
</Position18>
|
</Position18>
|
||||||
<Position19>
|
<Position19>
|
||||||
<Filename Value="d:\lazarus-svn\lcl\graphics.pp"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="1218" Column="14" TopLine="1200"/>
|
<Caret Line="496" Column="1" TopLine="468"/>
|
||||||
</Position19>
|
</Position19>
|
||||||
<Position20>
|
<Position20>
|
||||||
<Filename Value="..\..\fpspreadsheetgrid.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="211" Column="71" TopLine="241"/>
|
<Caret Line="498" Column="36" TopLine="468"/>
|
||||||
</Position20>
|
</Position20>
|
||||||
<Position21>
|
<Position21>
|
||||||
<Filename Value="d:\lazarus-svn\lcl\grids.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="4129" Column="3" TopLine="4124"/>
|
<Caret Line="1309" Column="1" TopLine="1309"/>
|
||||||
</Position21>
|
</Position21>
|
||||||
<Position22>
|
<Position22>
|
||||||
<Filename Value="d:\lazarus-svn\lcl\include\canvas.inc"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="1187" Column="3" TopLine="1178"/>
|
<Caret Line="1" Column="1" TopLine="1"/>
|
||||||
</Position22>
|
</Position22>
|
||||||
<Position23>
|
<Position23>
|
||||||
<Filename Value="d:\lazarus-svn\lcl\graphics.pp"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="1207" Column="15" TopLine="1188"/>
|
<Caret Line="498" Column="27" TopLine="466"/>
|
||||||
</Position23>
|
</Position23>
|
||||||
<Position24>
|
<Position24>
|
||||||
<Filename Value="d:\lazarus-svn\lcl\graphics.pp"/>
|
<Filename Value="..\..\fpspreadsheetgrid.pas"/>
|
||||||
<Caret Line="1208" Column="40" TopLine="1188"/>
|
<Caret Line="420" Column="3" TopLine="410"/>
|
||||||
</Position24>
|
</Position24>
|
||||||
<Position25>
|
<Position25>
|
||||||
<Filename Value="..\..\xlsbiff8.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="1558" Column="3" TopLine="1520"/>
|
<Caret Line="292" Column="15" TopLine="267"/>
|
||||||
</Position25>
|
</Position25>
|
||||||
<Position26>
|
<Position26>
|
||||||
<Filename Value="..\..\xlsbiff8.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="162" Column="78" TopLine="147"/>
|
<Caret Line="498" Column="11" TopLine="466"/>
|
||||||
</Position26>
|
</Position26>
|
||||||
<Position27>
|
<Position27>
|
||||||
<Filename Value="..\..\xlsbiff8.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="1531" Column="29" TopLine="1518"/>
|
<Caret Line="500" Column="10" TopLine="468"/>
|
||||||
</Position27>
|
</Position27>
|
||||||
<Position28>
|
<Position28>
|
||||||
<Filename Value="..\..\xlsbiff8.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="409" Column="1" TopLine="382"/>
|
<Caret Line="1473" Column="38" TopLine="1435"/>
|
||||||
</Position28>
|
</Position28>
|
||||||
<Position29>
|
<Position29>
|
||||||
<Filename Value="..\..\xlsbiff8.pas"/>
|
<Filename Value="..\..\fpspreadsheet.pas"/>
|
||||||
<Caret Line="613" Column="81" TopLine="588"/>
|
<Caret Line="20" Column="26" TopLine="1"/>
|
||||||
</Position29>
|
</Position29>
|
||||||
<Position30>
|
<Position30>
|
||||||
<Filename Value="..\..\xlsbiff8.pas"/>
|
<Filename Value="..\..\xlsbiff8.pas"/>
|
||||||
<Caret Line="163" Column="37" TopLine="144"/>
|
<Caret Line="2" Column="7" TopLine="1"/>
|
||||||
</Position30>
|
</Position30>
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
|
@ -72,7 +72,7 @@ object Form1: TForm1
|
|||||||
Top = 0
|
Top = 0
|
||||||
Width = 392
|
Width = 392
|
||||||
Align = alClient
|
Align = alClient
|
||||||
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goColSizing, goThumbTracking, goSmoothScroll, goCellEllipsis]
|
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goRowSizing, goColSizing, goThumbTracking, goSmoothScroll, goCellEllipsis]
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
TitleStyle = tsNative
|
TitleStyle = tsNative
|
||||||
end
|
end
|
||||||
@ -132,10 +132,82 @@ object Form1: TForm1
|
|||||||
Caption = '&File'
|
Caption = '&File'
|
||||||
object mnuOpen: TMenuItem
|
object mnuOpen: TMenuItem
|
||||||
Action = AcOpen
|
Action = AcOpen
|
||||||
|
Bitmap.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
20000000000000040000640000006400000000000000000000002C86D8002D88
|
||||||
|
D8F72D87D8F72D88D8F72D88D8F72D88D8F72D88D8F72D88D8F72D88D8F72D88
|
||||||
|
D8F72D88D8F72D87D8F72D88D8F72C86D800FFFFFF00FFFFFF00338ED9FBDCF0
|
||||||
|
FAFF98E1F6FF95E0F6FF92DFF6FF8EDEF5FF89DCF5FF85DAF4FF80D9F4FF7AD7
|
||||||
|
F3FF74D5F3FF70D3F2FFC2EAF8FF3594DAFFFFFFFF00FFFFFF003594DAF7EFFA
|
||||||
|
FEFF93E5F8FF8FE4F8FF89E3F8FF82E1F7FF7ADFF7FF71DEF6FF67DBF5FF5BD8
|
||||||
|
F4FF4DD4F3FF40D1F2FFCAF2FBFF3594DAFFFFFFFF00FFFFFF00369ADAF8F2FA
|
||||||
|
FDFF94E6F8FF92E5F8FF90E5F8FF8BE3F8FF86E2F7FF7FE1F7FF77DEF6FF6CDC
|
||||||
|
F6FF5ED9F4FF4FD5F3FFCCF2FBFF3594DAFFFFFFFF00FFFFFF0036A1DAF9F6FC
|
||||||
|
FEFF94E5F8FF93E5F8FF93E5F8FF91E5F8FF93DBE9FF93D7E3FF93D2DCFF90CE
|
||||||
|
D7FF8CC8CFFF86C1C6FFC9D8D6FF3594DAFFC57444E8CA7F53F137A6DAFAFEFF
|
||||||
|
FFFFF8FDFFFFF6FDFFFFF5FCFFFFF3FCFEFF9AE4F4FF9AE6F7FF9BE6F6FF9DE5
|
||||||
|
F5FF9EE5F5FF9FE5F4FFDAF3F8FF3594DAFFFDF4EEFFCA8054F935ABDAFAE8F6
|
||||||
|
FBFF70BCE7FF55AAE2FF4DA5E0FF91C9EBFFFAF3EFFFFDFEFDFFFFFDFCFFFFFD
|
||||||
|
FCFFFEFDFCFFFEFCFBFFFEFEFDFF3594DAFFEFF2E8FFCE8156FF36AADAF2F1FA
|
||||||
|
FDFF94DEF5FF93DCF4FF64BCE9FF3594DAFF3594DAFF3594DAFF3594DAFF3594
|
||||||
|
DAFF3594DAFF3594DAFF3594DAFF3594DAFFFBF6EFFFCC8355FE35AFDAF0F7FC
|
||||||
|
FEFF8EE4F8FF91DEF5FF9FE0F5FFACE1F6FFCA8452FFFFF7F1FFFFE9D9FFFFEA
|
||||||
|
DBFFFFE9D9FFFFE7D7FFFFE5D2FFFFE2CBFFFFF7F1FFCB8555FE36B3DAF8FDFE
|
||||||
|
FEFFFEFFFFFFFEFEFFFFFDFEFFFFFEFFFFFFE4BA91FFFFF7F0FFFFE7D5FFFDE7
|
||||||
|
D6FFFDE6D4FFFCE4D0FFFBE3CBFFFADCC2FFFEF3E8FFCC8656FE34B4D9D05EC2
|
||||||
|
E1FA60C3E2FA60C3E2FA60C3E2FA5FC3E2FAE4BB91FFFFF7F2FFFEE7D5FFFEE7
|
||||||
|
D5FFFDE5D1FFFAE0CAFFF9DEC4FFF7D9BCFFFDF2E7FFCC8757FEFFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E4BB92FFFEF7F1FFFCE5D2FFFCE4
|
||||||
|
D1FFFBE2CCFFF9DDC4FFF6D7BBFFF3D1AFFFFAEFE4FFCC8758FEFFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E4BB92FFFEF6F0FFFCE2CDFFFCE3
|
||||||
|
CDFFFADFC8FFF7D9BCFFF5E9DDFFFAF3EBFFFBF8F3FFCA8353FEFFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E4BB93FFFEF5EDFFFCDEC5FFFBE0
|
||||||
|
C7FFF9DCC2FFF5D3B4FFFEF9F3FFFAE2C4FFECC193FFC37D4893FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E5BE96FFFFFFFEFFFDF3E9FFFDF3
|
||||||
|
EAFFFCF2E8FFFAEFE3FFFAF2E7FFEABB88FFCF8555B3B4693D0CFFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EAC39DFFE6BF96FFE4BB92FFE4BB
|
||||||
|
92FFD1A06CF5D09E6DF6CC965FDAC479427EB2673C09FFFFFF00
|
||||||
|
}
|
||||||
OnClick = acOpenExecute
|
OnClick = acOpenExecute
|
||||||
end
|
end
|
||||||
object mnuSaveAs: TMenuItem
|
object mnuSaveAs: TMenuItem
|
||||||
Action = AcSaveAs
|
Action = AcSaveAs
|
||||||
|
Bitmap.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000BA6A3600B969
|
||||||
|
35B5B86935EEB76835FFB56835FFB46734FFB26634FFB06533FFAE6433FFAC63
|
||||||
|
32FFAA6232FFA96132FFA86031FFA76031FEA66031F1A86131C4BA6A35DEEBC6
|
||||||
|
ADFFEAC5ADFFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB
|
||||||
|
F8FFFEFBF8FFFEFBF8FFFEFBF8FFC89A7CFFC79879FFA76031EDBA6B37FEEDCA
|
||||||
|
B3FFE0A27AFFFEFAF7FF62C088FF62C088FF62C088FF62C088FF62C088FF62C0
|
||||||
|
88FF62C088FF62C088FFFDF9F6FFCA8D65FFC99B7CFFA76031FEBB6C38FFEECC
|
||||||
|
B6FFE1A27AFFFEFAF7FFBFDCC2FFBFDCC2FFBFDCC2FFBFDCC2FFBFDCC2FFBFDC
|
||||||
|
C2FFBFDCC2FFBFDCC2FFFDF9F6FFCD9068FFCC9E81FFA86132FFBB6B38FFEFCE
|
||||||
|
B8FFE1A279FFFEFAF7FF62C088FF62C088FF62C088FF62C088FF62C088FF62C0
|
||||||
|
88FF62C088FF62C088FFFDF9F6FFCF936AFFCEA384FFAA6132FFBA6A36FFEFD0
|
||||||
|
BBFFE2A27AFFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB
|
||||||
|
F8FFFEFBF8FFFEFBF8FFFEFBF8FFD3966DFFD2A78AFFAB6232FFBB6A36FFF0D2
|
||||||
|
BEFFE2A37AFFE2A37AFFE1A37AFFE2A37BFFE1A37BFFE0A178FFDE9F77FFDD9F
|
||||||
|
76FFDC9D74FFD99B72FFD89971FFD69970FFD5AB8EFFAD6333FFBB6A36FFF2D5
|
||||||
|
C2FFE3A37AFFE3A37AFFE2A37BFFE2A37BFFE2A47BFFE1A279FFE0A178FFDEA0
|
||||||
|
77FFDE9E75FFDC9D74FFDA9B73FFD99B73FFDAB095FFAF6433FFBB6A36FFF2D8
|
||||||
|
C5FFE3A47BFFE3A37AFFE3A47AFFE2A47BFFE2A37BFFE1A37BFFE1A279FFDFA0
|
||||||
|
77FFDE9F76FFDD9E74FFDB9C72FFDC9D74FFDDB59AFFB16534FFBB6B36FFF4D9
|
||||||
|
C7FFE6A67DFFC88C64FFC98D65FFC98E67FFCB926CFFCB926DFFCA9069FFC88C
|
||||||
|
65FFC88C64FFC88C64FFC88C64FFDA9C74FFE1BA9FFFB36634FFBB6B36FEF4DC
|
||||||
|
C9FFE7A77DFFF9ECE1FFF9ECE1FFF9EDE3FFFCF4EEFFFDFAF7FFFDF7F3FFFAED
|
||||||
|
E5FFF7E7DBFFF7E5D9FFF6E5D8FFDEA077FFE4BEA4FFB46734FFBC6B36FAF5DD
|
||||||
|
CCFFE7A87EFFFAF0E8FFFAF0E8FFC98D66FFFAF0E9FFFDF8F3FFFEFAF8FFFCF4
|
||||||
|
EFFFF9E9DFFFF7E7DBFFF7E5D9FFE0A278FFE7C2A9FFB66835FFBC6B36F0F6DF
|
||||||
|
D0FFE8A87EFFFCF6F1FFFCF6F1FFC88C64FFFAF1E9FFFBF4EEFFFDFAF7FFFDF9
|
||||||
|
F6FFFAF0E8FFF8E8DDFFF7E6DBFFE1A37AFFEFD5C3FFB76935FEBC6B36D8F6DF
|
||||||
|
D1FFE9AA80FFFEFAF6FFFDFAF6FFC88C64FFFBF3EEFFFBF1EAFFFCF6F2FFFEFB
|
||||||
|
F8FFFCF6F1FFF9ECE2FFF8E7DBFFEED0BAFFECD0BDFFBB703EF8BC6B369BF6E0
|
||||||
|
D1FFF7E0D1FFFEFBF8FFFEFBF7FFFDF9F6FFFCF5F0FFFAF0EAFFFBF2EDFFFDF9
|
||||||
|
F6FFFDFAF7FFFBF1EBFFF8E9DFFEECD0BDFBC9895EECB5693563BC6B3671BC6B
|
||||||
|
3690BC6B36CCBC6B36EEBC6B36FABB6B36FEBB6B36FFBB6A36FFBB6A36FFBC6C
|
||||||
|
39FFBD6E3BFFBB6D3AFFBB6B38EFBB703ECBB6693554FFFFFF00
|
||||||
|
}
|
||||||
OnClick = acSaveAsExecute
|
OnClick = acSaveAsExecute
|
||||||
end
|
end
|
||||||
object MenuItem1: TMenuItem
|
object MenuItem1: TMenuItem
|
||||||
@ -143,6 +215,42 @@ object Form1: TForm1
|
|||||||
end
|
end
|
||||||
object mnuQuit: TMenuItem
|
object mnuQuit: TMenuItem
|
||||||
Action = AcQuit
|
Action = AcQuit
|
||||||
|
Bitmap.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF001D63
|
||||||
|
9B1619609839145D9562105A92880D5890A4135C92FC0C578FED999999FF7171
|
||||||
|
71FF545454FF515151FF4F4F4FFF4C4C4CFF4A4A4AFF474747FF454545FF2567
|
||||||
|
9DFF3274A8FF3D7CAFFF4784B5FF4E8ABAFF3E7EADFF0C578FEAFFFFFF00FFFF
|
||||||
|
FF00585858FFA2A2A2FFA2A2A2FFA3A3A3FFA4A4A4FFA4A4A4FFA5A5A5FF2F6F
|
||||||
|
A5FF78ABD2FF78ABD3FF73A7D1FF69A0CDFF407FAEFF0F5991EAFFFFFF00FFFF
|
||||||
|
FF005C5C5CFFA1A1A1FF3C7340FFA0A1A1FFA3A3A3FFA3A3A3FFA4A4A4FF3674
|
||||||
|
AAFF7DAFD4FF5B9AC9FF5495C7FF5896C8FF4180AEFF135C94EAFFFFFF00FFFF
|
||||||
|
FF00606060FFA0A0A0FF3D7641FF367139FFA2A2A2FFA2A2A2FFA3A3A3FF3D79
|
||||||
|
B0FF82B3D7FF629FCCFF5A9AC9FF5E9BCAFF4381AFFF196098EA37823EFF347E
|
||||||
|
3BFF317937FF2E7534FF499150FF468F4CFF39733DFFA1A1A1FFA2A2A2FF457E
|
||||||
|
B4FF88B7D9FF67A3CFFF619ECCFF639FCCFF4583B1FF1F649CEA3B8742FF89CB
|
||||||
|
92FF84C88DFF80C688FF7BC383FF77C17FFF478F4DFF3B743FFFA1A1A1FF4C84
|
||||||
|
BAFF8DBBDBFF6EA8D1FF66A6D1FF5FB4DFFF4785B1FF2569A1EA3E8B46FF8FCE
|
||||||
|
99FF7DC687FF78C381FF73C07CFF74C07CFF79C281FF49904FFF547F57FF5489
|
||||||
|
BFFF94BFDDFF75ADD4FF63B8E1FF4BD4FFFF428BB8FF2C6EA6EA41904AFF94D2
|
||||||
|
9FFF91D09AFF8DCD96FF89CB92FF84C88DFF519858FF417C46FF9F9F9FFF5A8E
|
||||||
|
C4FF98C3E0FF7CB3D7FF74AFD6FF5EC4EDFF4B88B3FF3473ABEA44944DFF4291
|
||||||
|
4BFF3F8D48FF3D8945FF5DA465FF5AA061FF45834BFF9E9E9EFF9E9E9EFF6092
|
||||||
|
C9FF9EC7E2FF83B8DAFF7DB4D7FF7EB3D7FF4F89B4FF3B79B1EAFFFFFF00FFFF
|
||||||
|
FF00777777FF9A9A9AFF3D8A45FF498A4FFF9C9C9CFF9D9D9DFF9D9D9DFF6696
|
||||||
|
CCFFA2CBE3FF89BDDCFF83B9DAFF84B9DAFF518BB5FF437EB6EAFFFFFF00FFFF
|
||||||
|
FF007A7A7AFF999999FF529159FF999A99FF9B9B9BFF9C9C9CFF9C9C9CFF6C9A
|
||||||
|
D0FFA7CEE5FF8FC1DFFF89BDDCFF8BBDDCFF538DB6FF4B84BCEAFFFFFF00FFFF
|
||||||
|
FF007D7D7DFF999999FF999999FF9A9A9AFF9A9A9AFF9B9B9BFF9B9B9BFF6F9D
|
||||||
|
D3FFAAD1E7FFABD1E7FF98C7E1FF91C2DEFF568FB7FF5289C1EAFFFFFF00FFFF
|
||||||
|
FF00808080FF7E7E7EFF7C7C7CFF7A7A7AFF777777FF757575FF727272FF719E
|
||||||
|
D4FF6F9ED6FF87B2DCFFABD3E8FFA9D0E6FF5890B8FF598EC6EAFFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00709ED6DB6D9CD4FF85B1DAFF5A91B9FF6093CBEAFFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF006D9CD4896A9AD2FB6697CFEE
|
||||||
|
}
|
||||||
OnClick = acQuitExecute
|
OnClick = acQuitExecute
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -21,186 +21,342 @@ LazarusResources.Add('TForm1','FORMDATA',[
|
|||||||
+#7'Caption'#6#6'Sheet1'#12'ClientHeight'#3#210#0#11'ClientWidth'#3#136#1#0#15
|
+#7'Caption'#6#6'Sheet1'#12'ClientHeight'#3#210#0#11'ClientWidth'#3#136#1#0#15
|
||||||
+'TsWorksheetGrid'#15'sWorksheetGrid1'#4'Left'#2#0#6'Height'#3#210#0#3'Top'#2
|
+'TsWorksheetGrid'#15'sWorksheetGrid1'#4'Left'#2#0#6'Height'#3#210#0#3'Top'#2
|
||||||
+#0#5'Width'#3#136#1#5'Align'#7#8'alClient'#7'Options'#11#15'goFixedVertLine'
|
+#0#5'Width'#3#136#1#5'Align'#7#8'alClient'#7'Options'#11#15'goFixedVertLine'
|
||||||
+#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#13'goRangeSelect'#11'goCo'
|
+#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#13'goRangeSelect'#11'goRo'
|
||||||
+'lSizing'#15'goThumbTracking'#14'goSmoothScroll'#14'goCellEllipsis'#0#8'TabO'
|
+'wSizing'#11'goColSizing'#15'goThumbTracking'#14'goSmoothScroll'#14'goCellEl'
|
||||||
+'rder'#2#0#10'TitleStyle'#7#8'tsNative'#0#0#0#0#8'TToolBar'#8'ToolBar1'#4'Le'
|
+'lipsis'#0#8'TabOrder'#2#0#10'TitleStyle'#7#8'tsNative'#0#0#0#0#8'TToolBar'#8
|
||||||
+'ft'#2#0#6'Height'#2#26#3'Top'#2#0#5'Width'#3#144#1#7'Caption'#6#8'ToolBar1'
|
+'ToolBar1'#4'Left'#2#0#6'Height'#2#26#3'Top'#2#0#5'Width'#3#144#1#7'Caption'
|
||||||
+#11'EdgeBorders'#11#0#6'Images'#7#10'ImageList1'#8'TabOrder'#2#2#0#11'TToolB'
|
+#6#8'ToolBar1'#11'EdgeBorders'#11#0#6'Images'#7#10'ImageList1'#8'TabOrder'#2
|
||||||
+'utton'#11'ToolButton1'#4'Left'#2#1#3'Top'#2#0#6'Action'#7#6'AcOpen'#0#0#11
|
+#2#0#11'TToolButton'#11'ToolButton1'#4'Left'#2#1#3'Top'#2#0#6'Action'#7#6'Ac'
|
||||||
+'TToolButton'#11'ToolButton2'#4'Left'#2#24#3'Top'#2#0#6'Action'#7#8'AcSaveAs'
|
+'Open'#0#0#11'TToolButton'#11'ToolButton2'#4'Left'#2#24#3'Top'#2#0#6'Action'
|
||||||
+#0#0#11'TToolButton'#11'ToolButton3'#4'Left'#2'4'#3'Top'#2#0#6'Action'#7#6'A'
|
+#7#8'AcSaveAs'#0#0#11'TToolButton'#11'ToolButton3'#4'Left'#2'4'#3'Top'#2#0#6
|
||||||
+'cQuit'#0#0#11'TToolButton'#11'ToolButton5'#4'Left'#2'/'#3'Top'#2#0#5'Width'
|
+'Action'#7#6'AcQuit'#0#0#11'TToolButton'#11'ToolButton5'#4'Left'#2'/'#3'Top'
|
||||||
+#2#5#7'Caption'#6#11'ToolButton5'#5'Style'#7#10'tbsDivider'#0#0#0#11'TOpenDi'
|
+#2#0#5'Width'#2#5#7'Caption'#6#11'ToolButton5'#5'Style'#7#10'tbsDivider'#0#0
|
||||||
+'alog'#11'OpenDialog1'#10'DefaultExt'#6#4'.xls'#6'Filter'#6#192'Excel spread'
|
+#0#11'TOpenDialog'#11'OpenDialog1'#10'DefaultExt'#6#4'.xls'#6'Filter'#6#192
|
||||||
+'sheet (*.xls)|*.xls|Excel XML spreadsheet (*.xlsx)|*.xlxs|LibreOffice/OpenO'
|
+'Excel spreadsheet (*.xls)|*.xls|Excel XML spreadsheet (*.xlsx)|*.xlxs|Libre'
|
||||||
+'ffice spreadsheet (*.ods)|*.ods|Wikitable (pipes) (.wikitable_pipes)|.wikit'
|
+'Office/OpenOffice spreadsheet (*.ods)|*.ods|Wikitable (pipes) (.wikitable_p'
|
||||||
+'able_pipes|All files (*.*)|*.*'#7'Options'#11#20'ofExtensionDifferent'#14'o'
|
+'ipes)|.wikitable_pipes|All files (*.*)|*.*'#7'Options'#11#20'ofExtensionDif'
|
||||||
+'fEnableSizing'#12'ofViewDetail'#0#4'left'#2'@'#3'top'#3#176#0#0#0#11'TSaveD'
|
+'ferent'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#2'@'#3'top'#3#176#0#0
|
||||||
+'ialog'#11'SaveDialog1'#10'DefaultExt'#6#4'.xls'#6'Filter'#6#185'Excel sprea'
|
+#0#11'TSaveDialog'#11'SaveDialog1'#10'DefaultExt'#6#4'.xls'#6'Filter'#6#185
|
||||||
+'dsheet (*.xls)|*.xls|Excel XML spreadsheet (*.xlsx)|*.xlsx|LibreOffice/Open'
|
+'Excel spreadsheet (*.xls)|*.xls|Excel XML spreadsheet (*.xlsx)|*.xlsx|Libre'
|
||||||
+'Office spreadsheet (*.ods)|*.ods|Wikitable (wikimedia) (.wikitable_wikimedi'
|
+'Office/OpenOffice spreadsheet (*.ods)|*.ods|Wikitable (wikimedia) (.wikitab'
|
||||||
+'a)|*.wikitable_wikimedia'#7'Options'#11#20'ofExtensionDifferent'#14'ofEnabl'
|
+'le_wikimedia)|*.wikitable_wikimedia'#7'Options'#11#20'ofExtensionDifferent'
|
||||||
+'eSizing'#12'ofViewDetail'#0#4'left'#3#176#0#3'top'#3#176#0#0#0#9'TMainMenu'
|
+#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3#176#0#3'top'#3#176#0#0#0#9
|
||||||
+#9'MainMenu1'#6'Images'#7#10'ImageList1'#4'left'#3' '#1#3'top'#3#176#0#0#9'T'
|
+'TMainMenu'#9'MainMenu1'#6'Images'#7#10'ImageList1'#4'left'#3' '#1#3'top'#3
|
||||||
+'MenuItem'#7'mnuFile'#7'Caption'#6#5'&File'#0#9'TMenuItem'#7'mnuOpen'#6'Acti'
|
+#176#0#0#9'TMenuItem'#7'mnuFile'#7'Caption'#6#5'&File'#0#9'TMenuItem'#7'mnuO'
|
||||||
+'on'#7#6'AcOpen'#7'OnClick'#7#13'acOpenExecute'#0#0#9'TMenuItem'#9'mnuSaveAs'
|
+'pen'#6'Action'#7#6'AcOpen'#11'Bitmap.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0
|
||||||
+#6'Action'#7#8'AcSaveAs'#7'OnClick'#7#15'acSaveAsExecute'#0#0#9'TMenuItem'#9
|
+#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0
|
||||||
+'MenuItem1'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#7'mnuQuit'#6'Action'#7#6'AcQu'
|
+'d'#0#0#0#0#0#0#0#0#0#0#0','#134#216#0'-'#136#216#247'-'#135#216#247'-'#136
|
||||||
+'it'#7'OnClick'#7#13'acQuitExecute'#0#0#0#0#10'TImageList'#10'ImageList1'#4
|
+#216#247'-'#136#216#247'-'#136#216#247'-'#136#216#247'-'#136#216#247'-'#136
|
||||||
+'left'#3#176#0#3'top'#2'x'#6'Bitmap'#10#14#12#0#0'Li'#3#0#0#0#16#0#0#0#16#0#0
|
+#216#247'-'#136#216#247'-'#136#216#247'-'#135#216#247'-'#136#216#247','#134
|
||||||
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
|
+#216#0#255#255#255#0#255#255#255#0'3'#142#217#251#220#240#250#255#152#225#246
|
||||||
+#255#255#0#234#195#157#255#230#191#150#255#228#187#146#255#228#187#146#255
|
+#255#149#224#246#255#146#223#246#255#142#222#245#255#137#220#245#255#133#218
|
||||||
+#209#160'l'#245#208#158'm'#246#204#150'_'#218#196'yB~'#178'g<'#9#255#255#255
|
+#244#255#128#217#244#255'z'#215#243#255't'#213#243#255'p'#211#242#255#194#234
|
||||||
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
|
+#248#255'5'#148#218#255#255#255#255#0#255#255#255#0'5'#148#218#247#239#250
|
||||||
|
+#254#255#147#229#248#255#143#228#248#255#137#227#248#255#130#225#247#255'z'
|
||||||
|
+#223#247#255'q'#222#246#255'g'#219#245#255'['#216#244#255'M'#212#243#255'@'
|
||||||
|
+#209#242#255#202#242#251#255'5'#148#218#255#255#255#255#0#255#255#255#0'6'
|
||||||
|
+#154#218#248#242#250#253#255#148#230#248#255#146#229#248#255#144#229#248#255
|
||||||
|
+#139#227#248#255#134#226#247#255#127#225#247#255'w'#222#246#255'l'#220#246
|
||||||
|
+#255'^'#217#244#255'O'#213#243#255#204#242#251#255'5'#148#218#255#255#255#255
|
||||||
|
+#0#255#255#255#0'6'#161#218#249#246#252#254#255#148#229#248#255#147#229#248
|
||||||
|
+#255#147#229#248#255#145#229#248#255#147#219#233#255#147#215#227#255#147#210
|
||||||
|
+#220#255#144#206#215#255#140#200#207#255#134#193#198#255#201#216#214#255'5'
|
||||||
|
+#148#218#255#197'tD'#232#202#127'S'#241'7'#166#218#250#254#255#255#255#248
|
||||||
|
+#253#255#255#246#253#255#255#245#252#255#255#243#252#254#255#154#228#244#255
|
||||||
|
+#154#230#247#255#155#230#246#255#157#229#245#255#158#229#245#255#159#229#244
|
||||||
|
+#255#218#243#248#255'5'#148#218#255#253#244#238#255#202#128'T'#249'5'#171#218
|
||||||
|
,#250#232#246#251#255'p'#188#231#255'U'#170#226#255'M'#165#224#255#145#201#235
|
||||||
|
+#255#250#243#239#255#253#254#253#255#255#253#252#255#255#253#252#255#254#253
|
||||||
|
+#252#255#254#252#251#255#254#254#253#255'5'#148#218#255#239#242#232#255#206
|
||||||
|
+#129'V'#255'6'#170#218#242#241#250#253#255#148#222#245#255#147#220#244#255'd'
|
||||||
|
+#188#233#255'5'#148#218#255'5'#148#218#255'5'#148#218#255'5'#148#218#255'5'
|
||||||
|
+#148#218#255'5'#148#218#255'5'#148#218#255'5'#148#218#255'5'#148#218#255#251
|
||||||
|
+#246#239#255#204#131'U'#254'5'#175#218#240#247#252#254#255#142#228#248#255
|
||||||
|
+#145#222#245#255#159#224#245#255#172#225#246#255#202#132'R'#255#255#247#241
|
||||||
|
+#255#255#233#217#255#255#234#219#255#255#233#217#255#255#231#215#255#255#229
|
||||||
|
+#210#255#255#226#203#255#255#247#241#255#203#133'U'#254'6'#179#218#248#253
|
||||||
|
+#254#254#255#254#255#255#255#254#254#255#255#253#254#255#255#254#255#255#255
|
||||||
|
+#228#186#145#255#255#247#240#255#255#231#213#255#253#231#214#255#253#230#212
|
||||||
|
+#255#252#228#208#255#251#227#203#255#250#220#194#255#254#243#232#255#204#134
|
||||||
|
+'V'#254'4'#180#217#208'^'#194#225#250'`'#195#226#250'`'#195#226#250'`'#195
|
||||||
|
+#226#250'_'#195#226#250#228#187#145#255#255#247#242#255#254#231#213#255#254
|
||||||
|
+#231#213#255#253#229#209#255#250#224#202#255#249#222#196#255#247#217#188#255
|
||||||
|
+#253#242#231#255#204#135'W'#254#255#255#255#0#255#255#255#0#255#255#255#0#255
|
||||||
|
+#255#255#0#255#255#255#0#255#255#255#0#228#187#146#255#254#247#241#255#252
|
||||||
|
+#229#210#255#252#228#209#255#251#226#204#255#249#221#196#255#246#215#187#255
|
||||||
|
+#243#209#175#255#250#239#228#255#204#135'X'#254#255#255#255#0#255#255#255#0
|
||||||
|
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#228#187#146#255#254
|
||||||
|
+#246#240#255#252#226#205#255#252#227#205#255#250#223#200#255#247#217#188#255
|
||||||
|
+#245#233#221#255#250#243#235#255#251#248#243#255#202#131'S'#254#255#255#255#0
|
||||||
|
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#228
|
||||||
|
+#187#147#255#254#245#237#255#252#222#197#255#251#224#199#255#249#220#194#255
|
||||||
|
+#245#211#180#255#254#249#243#255#250#226#196#255#236#193#147#255#195'}H'#147
|
||||||
|
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
|
||||||
+#255#255#0#229#190#150#255#255#255#254#255#253#243#233#255#253#243#234#255
|
+#255#255#0#229#190#150#255#255#255#254#255#253#243#233#255#253#243#234#255
|
||||||
+#252#242#232#255#250#239#227#255#250#242#231#255#234#187#136#255#207#133'U'
|
+#252#242#232#255#250#239#227#255#250#242#231#255#234#187#136#255#207#133'U'
|
||||||
+#179#180'i='#12#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
|
+#179#180'i='#12#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
|
||||||
+#255#255#0#255#255#255#0#228#187#147#255#254#245#237#255#252#222#197#255#251
|
+#255#255#0#255#255#255#0#234#195#157#255#230#191#150#255#228#187#146#255#228
|
||||||
+#224#199#255#249#220#194#255#245#211#180#255#254#249#243#255#250#226#196#255
|
+#187#146#255#209#160'l'#245#208#158'm'#246#204#150'_'#218#196'yB~'#178'g<'#9
|
||||||
+#236#193#147#255#195'}H'#147#255#255#255#0#255#255#255#0#255#255#255#0#255
|
+#255#255#255#0#7'OnClick'#7#13'acOpenExecute'#0#0#9'TMenuItem'#9'mnuSaveAs'#6
|
||||||
+#255#255#0#255#255#255#0#255#255#255#0#228#187#146#255#254#246#240#255#252
|
+'Action'#7#8'AcSaveAs'#11'Bitmap.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0
|
||||||
+#226#205#255#252#227#205#255#250#223#200#255#247#217#188#255#245#233#221#255
|
+#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0
|
||||||
+#250#243#235#255#251#248#243#255#202#131'S'#254#255#255#255#0#255#255#255#0
|
+#0#0#0#0#0#0#0#0#0#0#186'j6'#0#185'i5'#181#184'i5'#238#183'h5'#255#181'h5'
|
||||||
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#228#187#146#255#254
|
+#255#180'g4'#255#178'f4'#255#176'e3'#255#174'd3'#255#172'c2'#255#170'b2'#255
|
||||||
+#247#241#255#252#229#210#255#252#228#209#255#251#226#204#255#249#221#196#255
|
+#169'a2'#255#168'`1'#255#167'`1'#254#166'`1'#241#168'a1'#196#186'j5'#222#235
|
||||||
+#246#215#187#255#243#209#175#255#250#239#228#255#204#135'X'#254'4'#180#217
|
+#198#173#255#234#197#173#255#254#251#248#255#254#251#248#255#254#251#248#255
|
||||||
+#208'^'#194#225#250'`'#195#226#250'`'#195#226#250'`'#195#226#250'_'#195#226
|
+#254#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255#254#251#248
|
||||||
,#250#228#187#145#255#255#247#242#255#254#231#213#255#254#231#213#255#253#229
|
+#255#254#251#248#255#254#251#248#255#200#154'|'#255#199#152'y'#255#167'`1'
|
||||||
+#209#255#250#224#202#255#249#222#196#255#247#217#188#255#253#242#231#255#204
|
+#237#186'k7'#254#237#202#179#255#224#162'z'#255#254#250#247#255'b'#192#136
|
||||||
+#135'W'#254'6'#179#218#248#253#254#254#255#254#255#255#255#254#254#255#255
|
+#255'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136
|
||||||
+#253#254#255#255#254#255#255#255#228#186#145#255#255#247#240#255#255#231#213
|
+#255'b'#192#136#255'b'#192#136#255#253#249#246#255#202#141'e'#255#201#155'|'
|
||||||
+#255#253#231#214#255#253#230#212#255#252#228#208#255#251#227#203#255#250#220
|
+#255#167'`1'#254#187'l8'#255#238#204#182#255#225#162'z'#255#254#250#247#255
|
||||||
+#194#255#254#243#232#255#204#134'V'#254'5'#175#218#240#247#252#254#255#142
|
|
||||||
+#228#248#255#145#222#245#255#159#224#245#255#172#225#246#255#202#132'R'#255
|
|
||||||
+#255#247#241#255#255#233#217#255#255#234#219#255#255#233#217#255#255#231#215
|
|
||||||
+#255#255#229#210#255#255#226#203#255#255#247#241#255#203#133'U'#254'6'#170
|
|
||||||
+#218#242#241#250#253#255#148#222#245#255#147#220#244#255'd'#188#233#255'5'
|
|
||||||
+#148#218#255'5'#148#218#255'5'#148#218#255'5'#148#218#255'5'#148#218#255'5'
|
|
||||||
+#148#218#255'5'#148#218#255'5'#148#218#255'5'#148#218#255#251#246#239#255#204
|
|
||||||
+#131'U'#254'5'#171#218#250#232#246#251#255'p'#188#231#255'U'#170#226#255'M'
|
|
||||||
+#165#224#255#145#201#235#255#250#243#239#255#253#254#253#255#255#253#252#255
|
|
||||||
+#255#253#252#255#254#253#252#255#254#252#251#255#254#254#253#255'5'#148#218
|
|
||||||
+#255#239#242#232#255#206#129'V'#255'7'#166#218#250#254#255#255#255#248#253
|
|
||||||
+#255#255#246#253#255#255#245#252#255#255#243#252#254#255#154#228#244#255#154
|
|
||||||
+#230#247#255#155#230#246#255#157#229#245#255#158#229#245#255#159#229#244#255
|
|
||||||
+#218#243#248#255'5'#148#218#255#253#244#238#255#202#128'T'#249'6'#161#218#249
|
|
||||||
+#246#252#254#255#148#229#248#255#147#229#248#255#147#229#248#255#145#229#248
|
|
||||||
+#255#147#219#233#255#147#215#227#255#147#210#220#255#144#206#215#255#140#200
|
|
||||||
+#207#255#134#193#198#255#201#216#214#255'5'#148#218#255#197'tD'#232#202#127
|
|
||||||
+'S'#241'6'#154#218#248#242#250#253#255#148#230#248#255#146#229#248#255#144
|
|
||||||
+#229#248#255#139#227#248#255#134#226#247#255#127#225#247#255'w'#222#246#255
|
|
||||||
+'l'#220#246#255'^'#217#244#255'O'#213#243#255#204#242#251#255'5'#148#218#255
|
|
||||||
+#255#255#255#0#255#255#255#0'5'#148#218#247#239#250#254#255#147#229#248#255
|
|
||||||
+#143#228#248#255#137#227#248#255#130#225#247#255'z'#223#247#255'q'#222#246
|
|
||||||
+#255'g'#219#245#255'['#216#244#255'M'#212#243#255'@'#209#242#255#202#242#251
|
|
||||||
+#255'5'#148#218#255#255#255#255#0#255#255#255#0'3'#142#217#251#220#240#250
|
|
||||||
+#255#152#225#246#255#149#224#246#255#146#223#246#255#142#222#245#255#137#220
|
|
||||||
+#245#255#133#218#244#255#128#217#244#255'z'#215#243#255't'#213#243#255'p'#211
|
|
||||||
+#242#255#194#234#248#255'5'#148#218#255#255#255#255#0#255#255#255#0','#134
|
|
||||||
+#216#0'-'#136#216#247'-'#135#216#247'-'#136#216#247'-'#136#216#247'-'#136#216
|
|
||||||
+#247'-'#136#216#247'-'#136#216#247'-'#136#216#247'-'#136#216#247'-'#136#216
|
|
||||||
+#247'-'#135#216#247'-'#136#216#247','#134#216#0#255#255#255#0#255#255#255#0
|
|
||||||
+#188'k6q'#188'k6'#144#188'k6'#204#188'k6'#238#188'k6'#250#187'k6'#254#187'k6'
|
|
||||||
+#255#187'j6'#255#187'j6'#255#188'l9'#255#189'n;'#255#187'm:'#255#187'k8'#239
|
|
||||||
+#187'p>'#203#182'i5T'#255#255#255#0#188'k6'#155#246#224#209#255#247#224#209
|
|
||||||
+#255#254#251#248#255#254#251#247#255#253#249#246#255#252#245#240#255#250#240
|
|
||||||
+#234#255#251#242#237#255#253#249#246#255#253#250#247#255#251#241#235#255#248
|
|
||||||
+#233#223#254#236#208#189#251#201#137'^'#236#181'i5c'#188'k6'#216#246#223#209
|
|
||||||
+#255#233#170#128#255#254#250#246#255#253#250#246#255#200#140'd'#255#251#243
|
|
||||||
+#238#255#251#241#234#255#252#246#242#255#254#251#248#255#252#246#241#255#249
|
|
||||||
+#236#226#255#248#231#219#255#238#208#186#255#236#208#189#255#187'p>'#248#188
|
|
||||||
+'k6'#240#246#223#208#255#232#168'~'#255#252#246#241#255#252#246#241#255#200
|
|
||||||
+#140'd'#255#250#241#233#255#251#244#238#255#253#250#247#255#253#249#246#255
|
|
||||||
+#250#240#232#255#248#232#221#255#247#230#219#255#225#163'z'#255#239#213#195
|
|
||||||
+#255#183'i5'#254#188'k6'#250#245#221#204#255#231#168'~'#255#250#240#232#255
|
|
||||||
+#250#240#232#255#201#141'f'#255#250#240#233#255#253#248#243#255#254#250#248
|
|
||||||
+#255#252#244#239#255#249#233#223#255#247#231#219#255#247#229#217#255#224#162
|
|
||||||
+'x'#255#231#194#169#255#182'h5'#255#187'k6'#254#244#220#201#255#231#167'}'
|
|
||||||
+#255#249#236#225#255#249#236#225#255#249#237#227#255#252#244#238#255#253#250
|
|
||||||
+#247#255#253#247#243#255#250#237#229#255#247#231#219#255#247#229#217#255#246
|
|
||||||
+#229#216#255#222#160'w'#255#228#190#164#255#180'g4'#255#187'k6'#255#244#217
|
|
||||||
+#199#255#230#166'}'#255#200#140'd'#255#201#141'e'#255#201#142'g'#255#203#146
|
|
||||||
+'l'#255#203#146'm'#255#202#144'i'#255#200#140'e'#255#200#140'd'#255#200#140
|
|
||||||
+'d'#255#200#140'd'#255#218#156't'#255#225#186#159#255#179'f4'#255#187'j6'#255
|
|
||||||
+#242#216#197#255#227#164'{'#255#227#163'z'#255#227#164'z'#255#226#164'{'#255
|
|
||||||
+#226#163'{'#255#225#163'{'#255#225#162'y'#255#223#160'w'#255#222#159'v'#255
|
|
||||||
+#221#158't'#255#219#156'r'#255#220#157't'#255#221#181#154#255#177'e4'#255#187
|
|
||||||
+'j6'#255#242#213#194#255#227#163'z'#255#227#163'z'#255#226#163'{'#255#226#163
|
|
||||||
+'{'#255#226#164'{'#255#225#162'y'#255#224#161'x'#255#222#160'w'#255#222#158
|
|
||||||
+'u'#255#220#157't'#255#218#155's'#255#217#155's'#255#218#176#149#255#175'd3'
|
|
||||||
+#255#187'j6'#255#240#210#190#255#226#163'z'#255#226#163'z'#255#225#163'z'#255
|
|
||||||
,#226#163'{'#255#225#163'{'#255#224#161'x'#255#222#159'w'#255#221#159'v'#255
|
|
||||||
+#220#157't'#255#217#155'r'#255#216#153'q'#255#214#153'p'#255#213#171#142#255
|
|
||||||
+#173'c3'#255#186'j6'#255#239#208#187#255#226#162'z'#255#254#251#248#255#254
|
|
||||||
+#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255
|
|
||||||
+#254#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255#211#150'm'
|
|
||||||
+#255#210#167#138#255#171'b2'#255#187'k8'#255#239#206#184#255#225#162'y'#255
|
|
||||||
+#254#250#247#255'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136#255
|
|
||||||
+'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136#255#253#249#246#255
|
|
||||||
+#207#147'j'#255#206#163#132#255#170'a2'#255#187'l8'#255#238#204#182#255#225
|
|
||||||
+#162'z'#255#254#250#247#255#191#220#194#255#191#220#194#255#191#220#194#255
|
|
||||||
+#191#220#194#255#191#220#194#255#191#220#194#255#191#220#194#255#191#220#194
|
+#191#220#194#255#191#220#194#255#191#220#194#255#191#220#194#255#191#220#194
|
||||||
+#255#253#249#246#255#205#144'h'#255#204#158#129#255#168'a2'#255#186'k7'#254
|
+#255#191#220#194#255#191#220#194#255#191#220#194#255#253#249#246#255#205#144
|
||||||
+#237#202#179#255#224#162'z'#255#254#250#247#255'b'#192#136#255'b'#192#136#255
|
+'h'#255#204#158#129#255#168'a2'#255#187'k8'#255#239#206#184#255#225#162'y'
|
||||||
+'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136#255
|
+#255#254#250#247#255'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136
|
||||||
+'b'#192#136#255#253#249#246#255#202#141'e'#255#201#155'|'#255#167'`1'#254#186
|
+#255'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136#255#253#249#246
|
||||||
+'j5'#222#235#198#173#255#234#197#173#255#254#251#248#255#254#251#248#255#254
|
+#255#207#147'j'#255#206#163#132#255#170'a2'#255#186'j6'#255#239#208#187#255
|
||||||
+#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255
|
+#226#162'z'#255#254#251#248#255#254#251#248#255#254#251#248#255#254#251#248
|
||||||
+#254#251#248#255#254#251#248#255#254#251#248#255#200#154'|'#255#199#152'y'
|
+#255#254#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255#254#251
|
||||||
+#255#167'`1'#237#186'j6'#0#185'i5'#181#184'i5'#238#183'h5'#255#181'h5'#255
|
+#248#255#254#251#248#255#211#150'm'#255#210#167#138#255#171'b2'#255#187'j6'
|
||||||
+#180'g4'#255#178'f4'#255#176'e3'#255#174'd3'#255#172'c2'#255#170'b2'#255#169
|
+#255#240#210#190#255#226#163'z'#255#226#163'z'#255#225#163'z'#255#226#163'{'
|
||||||
+'a2'#255#168'`1'#255#167'`1'#254#166'`1'#241#168'a1'#196#255#255#255#0#255
|
+#255#225#163'{'#255#224#161'x'#255#222#159'w'#255#221#159'v'#255#220#157't'
|
||||||
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
|
+#255#217#155'r'#255#216#153'q'#255#214#153'p'#255#213#171#142#255#173'c3'#255
|
||||||
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
|
+#187'j6'#255#242#213#194#255#227#163'z'#255#227#163'z'#255#226#163'{'#255#226
|
||||||
+#255#255#255#0'm'#156#212#137'j'#154#210#251'f'#151#207#238#255#255#255#0#255
|
+#163'{'#255#226#164'{'#255#225#162'y'#255#224#161'x'#255#222#160'w'#255#222
|
||||||
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
|
+#158'u'#255#220#157't'#255#218#155's'#255#217#155's'#255#218#176#149#255#175
|
||||||
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'p'#158#214#219
|
+'d3'#255#187'j6'#255#242#216#197#255#227#164'{'#255#227#163'z'#255#227#164'z'
|
||||||
+'m'#156#212#255#133#177#218#255'Z'#145#185#255'`'#147#203#234#255#255#255#0
|
+#255#226#164'{'#255#226#163'{'#255#225#163'{'#255#225#162'y'#255#223#160'w'
|
||||||
+#255#255#255#0#128#128#128#255'~~~'#255'|||'#255'zzz'#255'www'#255'uuu'#255
|
+#255#222#159'v'#255#221#158't'#255#219#156'r'#255#220#157't'#255#221#181#154
|
||||||
+'rrr'#255'q'#158#212#255'o'#158#214#255#135#178#220#255#171#211#232#255#169
|
+#255#177'e4'#255#187'k6'#255#244#217#199#255#230#166'}'#255#200#140'd'#255
|
||||||
+#208#230#255'X'#144#184#255'Y'#142#198#234#255#255#255#0#255#255#255#0'}}}'
|
,#201#141'e'#255#201#142'g'#255#203#146'l'#255#203#146'm'#255#202#144'i'#255
|
||||||
+#255#153#153#153#255#153#153#153#255#154#154#154#255#154#154#154#255#155#155
|
+#200#140'e'#255#200#140'd'#255#200#140'd'#255#200#140'd'#255#218#156't'#255
|
||||||
+#155#255#155#155#155#255'o'#157#211#255#170#209#231#255#171#209#231#255#152
|
+#225#186#159#255#179'f4'#255#187'k6'#254#244#220#201#255#231#167'}'#255#249
|
||||||
+#199#225#255#145#194#222#255'V'#143#183#255'R'#137#193#234#255#255#255#0#255
|
+#236#225#255#249#236#225#255#249#237#227#255#252#244#238#255#253#250#247#255
|
||||||
+#255#255#0'zzz'#255#153#153#153#255'R'#145'Y'#255#153#154#153#255#155#155#155
|
+#253#247#243#255#250#237#229#255#247#231#219#255#247#229#217#255#246#229#216
|
||||||
+#255#156#156#156#255#156#156#156#255'l'#154#208#255#167#206#229#255#143#193
|
+#255#222#160'w'#255#228#190#164#255#180'g4'#255#188'k6'#250#245#221#204#255
|
||||||
+#223#255#137#189#220#255#139#189#220#255'S'#141#182#255'K'#132#188#234#255
|
+#231#168'~'#255#250#240#232#255#250#240#232#255#201#141'f'#255#250#240#233
|
||||||
+#255#255#0#255#255#255#0'www'#255#154#154#154#255'='#138'E'#255'I'#138'O'#255
|
+#255#253#248#243#255#254#250#248#255#252#244#239#255#249#233#223#255#247#231
|
||||||
+#156#156#156#255#157#157#157#255#157#157#157#255'f'#150#204#255#162#203#227
|
+#219#255#247#229#217#255#224#162'x'#255#231#194#169#255#182'h5'#255#188'k6'
|
||||||
+#255#137#189#220#255#131#185#218#255#132#185#218#255'Q'#139#181#255'C~'#182
|
+#240#246#223#208#255#232#168'~'#255#252#246#241#255#252#246#241#255#200#140
|
||||||
+#234'D'#148'M'#255'B'#145'K'#255'?'#141'H'#255'='#137'E'#255']'#164'e'#255'Z'
|
+'d'#255#250#241#233#255#251#244#238#255#253#250#247#255#253#249#246#255#250
|
||||||
+#160'a'#255'E'#131'K'#255#158#158#158#255#158#158#158#255'`'#146#201#255#158
|
+#240#232#255#248#232#221#255#247#230#219#255#225#163'z'#255#239#213#195#255
|
||||||
+#199#226#255#131#184#218#255'}'#180#215#255'~'#179#215#255'O'#137#180#255';y'
|
+#183'i5'#254#188'k6'#216#246#223#209#255#233#170#128#255#254#250#246#255#253
|
||||||
+#177#234'A'#144'J'#255#148#210#159#255#145#208#154#255#141#205#150#255#137
|
+#250#246#255#200#140'd'#255#251#243#238#255#251#241#234#255#252#246#242#255
|
||||||
+#203#146#255#132#200#141#255'Q'#152'X'#255'A|F'#255#159#159#159#255'Z'#142
|
+#254#251#248#255#252#246#241#255#249#236#226#255#248#231#219#255#238#208#186
|
||||||
+#196#255#152#195#224#255'|'#179#215#255't'#175#214#255'^'#196#237#255'K'#136
|
+#255#236#208#189#255#187'p>'#248#188'k6'#155#246#224#209#255#247#224#209#255
|
||||||
+#179#255'4s'#171#234'>'#139'F'#255#143#206#153#255'}'#198#135#255'x'#195#129
|
+#254#251#248#255#254#251#247#255#253#249#246#255#252#245#240#255#250#240#234
|
||||||
+#255's'#192'|'#255't'#192'|'#255'y'#194#129#255'I'#144'O'#255'T'#127'W'#255
|
+#255#251#242#237#255#253#249#246#255#253#250#247#255#251#241#235#255#248#233
|
||||||
+'T'#137#191#255#148#191#221#255'u'#173#212#255'c'#184#225#255'K'#212#255#255
|
+#223#254#236#208#189#251#201#137'^'#236#181'i5c'#188'k6q'#188'k6'#144#188'k6'
|
||||||
+'B'#139#184#255',n'#166#234';'#135'B'#255#137#203#146#255#132#200#141#255#128
|
+#204#188'k6'#238#188'k6'#250#187'k6'#254#187'k6'#255#187'j6'#255#187'j6'#255
|
||||||
+#198#136#255'{'#195#131#255'w'#193#127#255'G'#143'M'#255';t?'#255#161#161#161
|
+#188'l9'#255#189'n;'#255#187'm:'#255#187'k8'#239#187'p>'#203#182'i5T'#255#255
|
||||||
+#255'L'#132#186#255#141#187#219#255'n'#168#209#255'f'#166#209#255'_'#180#223
|
+#255#0#7'OnClick'#7#15'acSaveAsExecute'#0#0#9'TMenuItem'#9'MenuItem1'#7'Capt'
|
||||||
+#255'G'#133#177#255'%i'#161#234'7'#130'>'#255'4~;'#255'1y7'#255'.u4'#255'I'
|
+'ion'#6#1'-'#0#0#9'TMenuItem'#7'mnuQuit'#6'Action'#7#6'AcQuit'#11'Bitmap.Dat'
|
||||||
+#145'P'#255'F'#143'L'#255'9s='#255#161#161#161#255#162#162#162#255'E~'#180
|
+'a'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0
|
||||||
+#255#136#183#217#255'g'#163#207#255'a'#158#204#255'c'#159#204#255'E'#131#177
|
+#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0
|
||||||
+#255#31'd'#156#234#255#255#255#0#255#255#255#0'```'#255#160#160#160#255'=vA'
|
|
||||||
+#255'6q9'#255#162#162#162#255#162#162#162#255#163#163#163#255'=y'#176#255#130
|
|
||||||
+#179#215#255'b'#159#204#255'Z'#154#201#255'^'#155#202#255'C'#129#175#255#25
|
|
||||||
+'`'#152#234#255#255#255#0#255#255#255#0'\\\'#255#161#161#161#255'<s@'#255#160
|
|
||||||
+#161#161#255#163#163#163#255#163#163#163#255#164#164#164#255'6t'#170#255'}'
|
|
||||||
+#175#212#255'['#154#201#255'T'#149#199#255'X'#150#200#255'A'#128#174#255#19
|
|
||||||
+'\'#148#234#255#255#255#0#255#255#255#0'XXX'#255#162#162#162#255#162#162#162
|
|
||||||
+#255#163#163#163#255#164#164#164#255#164#164#164#255#165#165#165#255'/o'#165
|
|
||||||
+#255'x'#171#210#255'x'#171#211#255's'#167#209#255'i'#160#205#255'@'#127#174
|
|
||||||
+#255#15'Y'#145#234#153#153#153#255'qqq'#255'TTT'#255'QQQ'#255'OOO'#255'LLL'
|
|
||||||
,#255'JJJ'#255'GGG'#255'EEE'#255'%g'#157#255'2t'#168#255'=|'#175#255'G'#132
|
|
||||||
+#181#255'N'#138#186#255'>~'#173#255#12'W'#143#234#255#255#255#0#255#255#255#0
|
|
||||||
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
|
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
|
||||||
+#255#255#0#255#255#255#0#29'c'#155#22#25'`'#152'9'#20']'#149'b'#16'Z'#146#136
|
+#255#255#0#255#255#255#0#255#255#255#0#29'c'#155#22#25'`'#152'9'#20']'#149'b'
|
||||||
+#13'X'#144#164#19'\'#146#252#12'W'#143#237#0#0#11'TActionList'#11'ActionList'
|
+#16'Z'#146#136#13'X'#144#164#19'\'#146#252#12'W'#143#237#153#153#153#255'qqq'
|
||||||
+'1'#4'left'#3#176#0#3'top'#2'@'#0#7'TAction'#6'AcOpen'#7'Caption'#6#7'Open..'
|
+#255'TTT'#255'QQQ'#255'OOO'#255'LLL'#255'JJJ'#255'GGG'#255'EEE'#255'%g'#157
|
||||||
+'.'#10'ImageIndex'#2#0#9'OnExecute'#7#13'acOpenExecute'#0#0#7'TAction'#8'AcS'
|
+#255'2t'#168#255'=|'#175#255'G'#132#181#255'N'#138#186#255'>~'#173#255#12'W'
|
||||||
+'aveAs'#7'Caption'#6#10'Save as...'#10'ImageIndex'#2#1#9'OnExecute'#7#15'acS'
|
+#143#234#255#255#255#0#255#255#255#0'XXX'#255#162#162#162#255#162#162#162#255
|
||||||
+'aveAsExecute'#0#0#7'TAction'#6'AcQuit'#7'Caption'#6#4'Quit'#10'ImageIndex'#2
|
+#163#163#163#255#164#164#164#255#164#164#164#255#165#165#165#255'/o'#165#255
|
||||||
+#2#9'OnExecute'#7#13'acQuitExecute'#0#0#0#0
|
+'x'#171#210#255'x'#171#211#255's'#167#209#255'i'#160#205#255'@'#127#174#255
|
||||||
|
+#15'Y'#145#234#255#255#255#0#255#255#255#0'\\\'#255#161#161#161#255'<s@'#255
|
||||||
|
+#160#161#161#255#163#163#163#255#163#163#163#255#164#164#164#255'6t'#170#255
|
||||||
|
+'}'#175#212#255'['#154#201#255'T'#149#199#255'X'#150#200#255'A'#128#174#255
|
||||||
|
+#19'\'#148#234#255#255#255#0#255#255#255#0'```'#255#160#160#160#255'=vA'#255
|
||||||
|
+'6q9'#255#162#162#162#255#162#162#162#255#163#163#163#255'=y'#176#255#130#179
|
||||||
|
+#215#255'b'#159#204#255'Z'#154#201#255'^'#155#202#255'C'#129#175#255#25'`'
|
||||||
|
+#152#234'7'#130'>'#255'4~;'#255'1y7'#255'.u4'#255'I'#145'P'#255'F'#143'L'#255
|
||||||
|
+'9s='#255#161#161#161#255#162#162#162#255'E~'#180#255#136#183#217#255'g'#163
|
||||||
|
+#207#255'a'#158#204#255'c'#159#204#255'E'#131#177#255#31'd'#156#234';'#135'B'
|
||||||
|
+#255#137#203#146#255#132#200#141#255#128#198#136#255'{'#195#131#255'w'#193
|
||||||
|
+#127#255'G'#143'M'#255';t?'#255#161#161#161#255'L'#132#186#255#141#187#219
|
||||||
|
+#255'n'#168#209#255'f'#166#209#255'_'#180#223#255'G'#133#177#255'%i'#161#234
|
||||||
|
+'>'#139'F'#255#143#206#153#255'}'#198#135#255'x'#195#129#255's'#192'|'#255't'
|
||||||
|
+#192'|'#255'y'#194#129#255'I'#144'O'#255'T'#127'W'#255'T'#137#191#255#148#191
|
||||||
|
+#221#255'u'#173#212#255'c'#184#225#255'K'#212#255#255'B'#139#184#255',n'#166
|
||||||
|
+#234'A'#144'J'#255#148#210#159#255#145#208#154#255#141#205#150#255#137#203
|
||||||
|
+#146#255#132#200#141#255'Q'#152'X'#255'A|F'#255#159#159#159#255'Z'#142#196
|
||||||
|
+#255#152#195#224#255'|'#179#215#255't'#175#214#255'^'#196#237#255'K'#136#179
|
||||||
|
+#255'4s'#171#234'D'#148'M'#255'B'#145'K'#255'?'#141'H'#255'='#137'E'#255']'
|
||||||
|
+#164'e'#255'Z'#160'a'#255'E'#131'K'#255#158#158#158#255#158#158#158#255'`'
|
||||||
|
+#146#201#255#158#199#226#255#131#184#218#255'}'#180#215#255'~'#179#215#255'O'
|
||||||
|
+#137#180#255';y'#177#234#255#255#255#0#255#255#255#0'www'#255#154#154#154#255
|
||||||
|
+'='#138'E'#255'I'#138'O'#255#156#156#156#255#157#157#157#255#157#157#157#255
|
||||||
|
+'f'#150#204#255#162#203#227#255#137#189#220#255#131#185#218#255#132#185#218
|
||||||
|
+#255'Q'#139#181#255'C~'#182#234#255#255#255#0#255#255#255#0'zzz'#255#153#153
|
||||||
|
+#153#255'R'#145'Y'#255#153#154#153#255#155#155#155#255#156#156#156#255#156
|
||||||
|
+#156#156#255'l'#154#208#255#167#206#229#255#143#193#223#255#137#189#220#255
|
||||||
|
+#139#189#220#255'S'#141#182#255'K'#132#188#234#255#255#255#0#255#255#255#0'}'
|
||||||
|
+'}}'#255#153#153#153#255#153#153#153#255#154#154#154#255#154#154#154#255#155
|
||||||
|
+#155#155#255#155#155#155#255'o'#157#211#255#170#209#231#255#171#209#231#255
|
||||||
|
+#152#199#225#255#145#194#222#255'V'#143#183#255'R'#137#193#234#255#255#255#0
|
||||||
|
,#255#255#255#0#128#128#128#255'~~~'#255'|||'#255'zzz'#255'www'#255'uuu'#255
|
||||||
|
+'rrr'#255'q'#158#212#255'o'#158#214#255#135#178#220#255#171#211#232#255#169
|
||||||
|
+#208#230#255'X'#144#184#255'Y'#142#198#234#255#255#255#0#255#255#255#0#255
|
||||||
|
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
|
||||||
|
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0'p'#158#214#219'm'#156#212
|
||||||
|
+#255#133#177#218#255'Z'#145#185#255'`'#147#203#234#255#255#255#0#255#255#255
|
||||||
|
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
|
||||||
|
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
|
||||||
|
+#255#0'm'#156#212#137'j'#154#210#251'f'#151#207#238#7'OnClick'#7#13'acQuitEx'
|
||||||
|
+'ecute'#0#0#0#0#10'TImageList'#10'ImageList1'#4'left'#3#176#0#3'top'#2'x'#6
|
||||||
|
+'Bitmap'#10#14#12#0#0'Li'#3#0#0#0#16#0#0#0#16#0#0#0#255#255#255#0#255#255#255
|
||||||
|
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#234#195#157#255
|
||||||
|
+#230#191#150#255#228#187#146#255#228#187#146#255#209#160'l'#245#208#158'm'
|
||||||
|
+#246#204#150'_'#218#196'yB~'#178'g<'#9#255#255#255#0#255#255#255#0#255#255
|
||||||
|
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#229#190#150
|
||||||
|
+#255#255#255#254#255#253#243#233#255#253#243#234#255#252#242#232#255#250#239
|
||||||
|
+#227#255#250#242#231#255#234#187#136#255#207#133'U'#179#180'i='#12#255#255
|
||||||
|
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
|
||||||
|
+#228#187#147#255#254#245#237#255#252#222#197#255#251#224#199#255#249#220#194
|
||||||
|
+#255#245#211#180#255#254#249#243#255#250#226#196#255#236#193#147#255#195'}H'
|
||||||
|
+#147#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
|
||||||
|
+#255#255#255#0#228#187#146#255#254#246#240#255#252#226#205#255#252#227#205
|
||||||
|
+#255#250#223#200#255#247#217#188#255#245#233#221#255#250#243#235#255#251#248
|
||||||
|
+#243#255#202#131'S'#254#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
|
||||||
|
+#0#255#255#255#0#255#255#255#0#228#187#146#255#254#247#241#255#252#229#210
|
||||||
|
+#255#252#228#209#255#251#226#204#255#249#221#196#255#246#215#187#255#243#209
|
||||||
|
+#175#255#250#239#228#255#204#135'X'#254'4'#180#217#208'^'#194#225#250'`'#195
|
||||||
|
+#226#250'`'#195#226#250'`'#195#226#250'_'#195#226#250#228#187#145#255#255#247
|
||||||
|
+#242#255#254#231#213#255#254#231#213#255#253#229#209#255#250#224#202#255#249
|
||||||
|
+#222#196#255#247#217#188#255#253#242#231#255#204#135'W'#254'6'#179#218#248
|
||||||
|
+#253#254#254#255#254#255#255#255#254#254#255#255#253#254#255#255#254#255#255
|
||||||
|
+#255#228#186#145#255#255#247#240#255#255#231#213#255#253#231#214#255#253#230
|
||||||
|
+#212#255#252#228#208#255#251#227#203#255#250#220#194#255#254#243#232#255#204
|
||||||
|
+#134'V'#254'5'#175#218#240#247#252#254#255#142#228#248#255#145#222#245#255
|
||||||
|
+#159#224#245#255#172#225#246#255#202#132'R'#255#255#247#241#255#255#233#217
|
||||||
|
+#255#255#234#219#255#255#233#217#255#255#231#215#255#255#229#210#255#255#226
|
||||||
|
+#203#255#255#247#241#255#203#133'U'#254'6'#170#218#242#241#250#253#255#148
|
||||||
|
+#222#245#255#147#220#244#255'd'#188#233#255'5'#148#218#255'5'#148#218#255'5'
|
||||||
|
+#148#218#255'5'#148#218#255'5'#148#218#255'5'#148#218#255'5'#148#218#255'5'
|
||||||
|
+#148#218#255'5'#148#218#255#251#246#239#255#204#131'U'#254'5'#171#218#250#232
|
||||||
|
+#246#251#255'p'#188#231#255'U'#170#226#255'M'#165#224#255#145#201#235#255#250
|
||||||
|
+#243#239#255#253#254#253#255#255#253#252#255#255#253#252#255#254#253#252#255
|
||||||
|
+#254#252#251#255#254#254#253#255'5'#148#218#255#239#242#232#255#206#129'V'
|
||||||
|
+#255'7'#166#218#250#254#255#255#255#248#253#255#255#246#253#255#255#245#252
|
||||||
|
+#255#255#243#252#254#255#154#228#244#255#154#230#247#255#155#230#246#255#157
|
||||||
|
+#229#245#255#158#229#245#255#159#229#244#255#218#243#248#255'5'#148#218#255
|
||||||
|
+#253#244#238#255#202#128'T'#249'6'#161#218#249#246#252#254#255#148#229#248
|
||||||
|
+#255#147#229#248#255#147#229#248#255#145#229#248#255#147#219#233#255#147#215
|
||||||
|
+#227#255#147#210#220#255#144#206#215#255#140#200#207#255#134#193#198#255#201
|
||||||
|
+#216#214#255'5'#148#218#255#197'tD'#232#202#127'S'#241'6'#154#218#248#242#250
|
||||||
|
+#253#255#148#230#248#255#146#229#248#255#144#229#248#255#139#227#248#255#134
|
||||||
|
+#226#247#255#127#225#247#255'w'#222#246#255'l'#220#246#255'^'#217#244#255'O'
|
||||||
|
+#213#243#255#204#242#251#255'5'#148#218#255#255#255#255#0#255#255#255#0'5'
|
||||||
|
+#148#218#247#239#250#254#255#147#229#248#255#143#228#248#255#137#227#248#255
|
||||||
|
+#130#225#247#255'z'#223#247#255'q'#222#246#255'g'#219#245#255'['#216#244#255
|
||||||
|
+'M'#212#243#255'@'#209#242#255#202#242#251#255'5'#148#218#255#255#255#255#0
|
||||||
|
+#255#255#255#0'3'#142#217#251#220#240#250#255#152#225#246#255#149#224#246#255
|
||||||
|
+#146#223#246#255#142#222#245#255#137#220#245#255#133#218#244#255#128#217#244
|
||||||
|
+#255'z'#215#243#255't'#213#243#255'p'#211#242#255#194#234#248#255'5'#148#218
|
||||||
|
+#255#255#255#255#0#255#255#255#0','#134#216#0'-'#136#216#247'-'#135#216#247
|
||||||
|
+'-'#136#216#247'-'#136#216#247'-'#136#216#247'-'#136#216#247'-'#136#216#247
|
||||||
|
+'-'#136#216#247'-'#136#216#247'-'#136#216#247'-'#135#216#247'-'#136#216#247
|
||||||
|
+','#134#216#0#255#255#255#0#255#255#255#0#188'k6q'#188'k6'#144#188'k6'#204
|
||||||
|
+#188'k6'#238#188'k6'#250#187'k6'#254#187'k6'#255#187'j6'#255#187'j6'#255#188
|
||||||
|
,'l9'#255#189'n;'#255#187'm:'#255#187'k8'#239#187'p>'#203#182'i5T'#255#255#255
|
||||||
|
+#0#188'k6'#155#246#224#209#255#247#224#209#255#254#251#248#255#254#251#247
|
||||||
|
+#255#253#249#246#255#252#245#240#255#250#240#234#255#251#242#237#255#253#249
|
||||||
|
+#246#255#253#250#247#255#251#241#235#255#248#233#223#254#236#208#189#251#201
|
||||||
|
+#137'^'#236#181'i5c'#188'k6'#216#246#223#209#255#233#170#128#255#254#250#246
|
||||||
|
+#255#253#250#246#255#200#140'd'#255#251#243#238#255#251#241#234#255#252#246
|
||||||
|
+#242#255#254#251#248#255#252#246#241#255#249#236#226#255#248#231#219#255#238
|
||||||
|
+#208#186#255#236#208#189#255#187'p>'#248#188'k6'#240#246#223#208#255#232#168
|
||||||
|
+'~'#255#252#246#241#255#252#246#241#255#200#140'd'#255#250#241#233#255#251
|
||||||
|
+#244#238#255#253#250#247#255#253#249#246#255#250#240#232#255#248#232#221#255
|
||||||
|
+#247#230#219#255#225#163'z'#255#239#213#195#255#183'i5'#254#188'k6'#250#245
|
||||||
|
+#221#204#255#231#168'~'#255#250#240#232#255#250#240#232#255#201#141'f'#255
|
||||||
|
+#250#240#233#255#253#248#243#255#254#250#248#255#252#244#239#255#249#233#223
|
||||||
|
+#255#247#231#219#255#247#229#217#255#224#162'x'#255#231#194#169#255#182'h5'
|
||||||
|
+#255#187'k6'#254#244#220#201#255#231#167'}'#255#249#236#225#255#249#236#225
|
||||||
|
+#255#249#237#227#255#252#244#238#255#253#250#247#255#253#247#243#255#250#237
|
||||||
|
+#229#255#247#231#219#255#247#229#217#255#246#229#216#255#222#160'w'#255#228
|
||||||
|
+#190#164#255#180'g4'#255#187'k6'#255#244#217#199#255#230#166'}'#255#200#140
|
||||||
|
+'d'#255#201#141'e'#255#201#142'g'#255#203#146'l'#255#203#146'm'#255#202#144
|
||||||
|
+'i'#255#200#140'e'#255#200#140'd'#255#200#140'd'#255#200#140'd'#255#218#156
|
||||||
|
+'t'#255#225#186#159#255#179'f4'#255#187'j6'#255#242#216#197#255#227#164'{'
|
||||||
|
+#255#227#163'z'#255#227#164'z'#255#226#164'{'#255#226#163'{'#255#225#163'{'
|
||||||
|
+#255#225#162'y'#255#223#160'w'#255#222#159'v'#255#221#158't'#255#219#156'r'
|
||||||
|
+#255#220#157't'#255#221#181#154#255#177'e4'#255#187'j6'#255#242#213#194#255
|
||||||
|
+#227#163'z'#255#227#163'z'#255#226#163'{'#255#226#163'{'#255#226#164'{'#255
|
||||||
|
+#225#162'y'#255#224#161'x'#255#222#160'w'#255#222#158'u'#255#220#157't'#255
|
||||||
|
+#218#155's'#255#217#155's'#255#218#176#149#255#175'd3'#255#187'j6'#255#240
|
||||||
|
+#210#190#255#226#163'z'#255#226#163'z'#255#225#163'z'#255#226#163'{'#255#225
|
||||||
|
+#163'{'#255#224#161'x'#255#222#159'w'#255#221#159'v'#255#220#157't'#255#217
|
||||||
|
+#155'r'#255#216#153'q'#255#214#153'p'#255#213#171#142#255#173'c3'#255#186'j6'
|
||||||
|
+#255#239#208#187#255#226#162'z'#255#254#251#248#255#254#251#248#255#254#251
|
||||||
|
+#248#255#254#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255#254
|
||||||
|
+#251#248#255#254#251#248#255#254#251#248#255#211#150'm'#255#210#167#138#255
|
||||||
|
+#171'b2'#255#187'k8'#255#239#206#184#255#225#162'y'#255#254#250#247#255'b'
|
||||||
|
+#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'
|
||||||
|
+#192#136#255'b'#192#136#255'b'#192#136#255#253#249#246#255#207#147'j'#255#206
|
||||||
|
+#163#132#255#170'a2'#255#187'l8'#255#238#204#182#255#225#162'z'#255#254#250
|
||||||
|
+#247#255#191#220#194#255#191#220#194#255#191#220#194#255#191#220#194#255#191
|
||||||
|
+#220#194#255#191#220#194#255#191#220#194#255#191#220#194#255#253#249#246#255
|
||||||
|
+#205#144'h'#255#204#158#129#255#168'a2'#255#186'k7'#254#237#202#179#255#224
|
||||||
|
+#162'z'#255#254#250#247#255'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'
|
||||||
|
+#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136#255'b'#192#136#255#253
|
||||||
|
+#249#246#255#202#141'e'#255#201#155'|'#255#167'`1'#254#186'j5'#222#235#198
|
||||||
|
+#173#255#234#197#173#255#254#251#248#255#254#251#248#255#254#251#248#255#254
|
||||||
|
+#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255#254#251#248#255
|
||||||
|
+#254#251#248#255#254#251#248#255#200#154'|'#255#199#152'y'#255#167'`1'#237
|
||||||
|
+#186'j6'#0#185'i5'#181#184'i5'#238#183'h5'#255#181'h5'#255#180'g4'#255#178'f'
|
||||||
|
+'4'#255#176'e3'#255#174'd3'#255#172'c2'#255#170'b2'#255#169'a2'#255#168'`1'
|
||||||
|
+#255#167'`1'#254#166'`1'#241#168'a1'#196#255#255#255#0#255#255#255#0#255#255
|
||||||
|
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
|
||||||
|
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'm'#156
|
||||||
|
+#212#137'j'#154#210#251'f'#151#207#238#255#255#255#0#255#255#255#0#255#255
|
||||||
|
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
|
||||||
|
+#255#255#255#0#255#255#255#0#255#255#255#0'p'#158#214#219'm'#156#212#255#133
|
||||||
|
+#177#218#255'Z'#145#185#255'`'#147#203#234#255#255#255#0#255#255#255#0#128
|
||||||
|
+#128#128#255'~~~'#255'|||'#255'zzz'#255'www'#255'uuu'#255'rrr'#255'q'#158#212
|
||||||
|
+#255'o'#158#214#255#135#178#220#255#171#211#232#255#169#208#230#255'X'#144
|
||||||
|
+#184#255'Y'#142#198#234#255#255#255#0#255#255#255#0'}}}'#255#153#153#153#255
|
||||||
|
+#153#153#153#255#154#154#154#255#154#154#154#255#155#155#155#255#155#155#155
|
||||||
|
+#255'o'#157#211#255#170#209#231#255#171#209#231#255#152#199#225#255#145#194
|
||||||
|
+#222#255'V'#143#183#255'R'#137#193#234#255#255#255#0#255#255#255#0'zzz'#255
|
||||||
|
+#153#153#153#255'R'#145'Y'#255#153#154#153#255#155#155#155#255#156#156#156
|
||||||
|
+#255#156#156#156#255'l'#154#208#255#167#206#229#255#143#193#223#255#137#189
|
||||||
|
+#220#255#139#189#220#255'S'#141#182#255'K'#132#188#234#255#255#255#0#255#255
|
||||||
|
,#255#0'www'#255#154#154#154#255'='#138'E'#255'I'#138'O'#255#156#156#156#255
|
||||||
|
+#157#157#157#255#157#157#157#255'f'#150#204#255#162#203#227#255#137#189#220
|
||||||
|
+#255#131#185#218#255#132#185#218#255'Q'#139#181#255'C~'#182#234'D'#148'M'#255
|
||||||
|
+'B'#145'K'#255'?'#141'H'#255'='#137'E'#255']'#164'e'#255'Z'#160'a'#255'E'#131
|
||||||
|
+'K'#255#158#158#158#255#158#158#158#255'`'#146#201#255#158#199#226#255#131
|
||||||
|
+#184#218#255'}'#180#215#255'~'#179#215#255'O'#137#180#255';y'#177#234'A'#144
|
||||||
|
+'J'#255#148#210#159#255#145#208#154#255#141#205#150#255#137#203#146#255#132
|
||||||
|
+#200#141#255'Q'#152'X'#255'A|F'#255#159#159#159#255'Z'#142#196#255#152#195
|
||||||
|
+#224#255'|'#179#215#255't'#175#214#255'^'#196#237#255'K'#136#179#255'4s'#171
|
||||||
|
+#234'>'#139'F'#255#143#206#153#255'}'#198#135#255'x'#195#129#255's'#192'|'
|
||||||
|
+#255't'#192'|'#255'y'#194#129#255'I'#144'O'#255'T'#127'W'#255'T'#137#191#255
|
||||||
|
+#148#191#221#255'u'#173#212#255'c'#184#225#255'K'#212#255#255'B'#139#184#255
|
||||||
|
+',n'#166#234';'#135'B'#255#137#203#146#255#132#200#141#255#128#198#136#255'{'
|
||||||
|
+#195#131#255'w'#193#127#255'G'#143'M'#255';t?'#255#161#161#161#255'L'#132#186
|
||||||
|
+#255#141#187#219#255'n'#168#209#255'f'#166#209#255'_'#180#223#255'G'#133#177
|
||||||
|
+#255'%i'#161#234'7'#130'>'#255'4~;'#255'1y7'#255'.u4'#255'I'#145'P'#255'F'
|
||||||
|
+#143'L'#255'9s='#255#161#161#161#255#162#162#162#255'E~'#180#255#136#183#217
|
||||||
|
+#255'g'#163#207#255'a'#158#204#255'c'#159#204#255'E'#131#177#255#31'd'#156
|
||||||
|
+#234#255#255#255#0#255#255#255#0'```'#255#160#160#160#255'=vA'#255'6q9'#255
|
||||||
|
+#162#162#162#255#162#162#162#255#163#163#163#255'=y'#176#255#130#179#215#255
|
||||||
|
+'b'#159#204#255'Z'#154#201#255'^'#155#202#255'C'#129#175#255#25'`'#152#234
|
||||||
|
+#255#255#255#0#255#255#255#0'\\\'#255#161#161#161#255'<s@'#255#160#161#161
|
||||||
|
+#255#163#163#163#255#163#163#163#255#164#164#164#255'6t'#170#255'}'#175#212
|
||||||
|
+#255'['#154#201#255'T'#149#199#255'X'#150#200#255'A'#128#174#255#19'\'#148
|
||||||
|
+#234#255#255#255#0#255#255#255#0'XXX'#255#162#162#162#255#162#162#162#255#163
|
||||||
|
+#163#163#255#164#164#164#255#164#164#164#255#165#165#165#255'/o'#165#255'x'
|
||||||
|
+#171#210#255'x'#171#211#255's'#167#209#255'i'#160#205#255'@'#127#174#255#15
|
||||||
|
+'Y'#145#234#153#153#153#255'qqq'#255'TTT'#255'QQQ'#255'OOO'#255'LLL'#255'JJJ'
|
||||||
|
+#255'GGG'#255'EEE'#255'%g'#157#255'2t'#168#255'=|'#175#255'G'#132#181#255'N'
|
||||||
|
+#138#186#255'>~'#173#255#12'W'#143#234#255#255#255#0#255#255#255#0#255#255
|
||||||
|
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
|
||||||
|
+#255#255#255#0#29'c'#155#22#25'`'#152'9'#20']'#149'b'#16'Z'#146#136#13'X'#144
|
||||||
|
+#164#19'\'#146#252#12'W'#143#237#0#0#11'TActionList'#11'ActionList1'#4'left'
|
||||||
|
+#3#176#0#3'top'#2'@'#0#7'TAction'#6'AcOpen'#7'Caption'#6#7'Open...'#10'Image'
|
||||||
|
+'Index'#2#0#9'OnExecute'#7#13'acOpenExecute'#0#0#7'TAction'#8'AcSaveAs'#7'Ca'
|
||||||
|
+'ption'#6#10'Save as...'#10'ImageIndex'#2#1#9'OnExecute'#7#15'acSaveAsExecut'
|
||||||
|
+'e'#0#0#7'TAction'#6'AcQuit'#7'Caption'#6#4'Quit'#10'ImageIndex'#2#2#9'OnExe'
|
||||||
|
+'cute'#7#13'acQuitExecute'#0#0#0#0
|
||||||
]);
|
]);
|
||||||
|
@ -132,7 +132,7 @@ type
|
|||||||
{@@ List of possible formatting fields }
|
{@@ List of possible formatting fields }
|
||||||
|
|
||||||
TsUsedFormattingField = (uffTextRotation, uffBold, uffBorder, uffBackgroundColor,
|
TsUsedFormattingField = (uffTextRotation, uffBold, uffBorder, uffBackgroundColor,
|
||||||
uffNumberFormat, uffWordWrap);
|
uffNumberFormat, uffWordWrap, uffHorAlign, uffVertAlign);
|
||||||
|
|
||||||
{@@ Describes which formatting fields are active }
|
{@@ Describes which formatting fields are active }
|
||||||
|
|
||||||
@ -173,6 +173,10 @@ type
|
|||||||
|
|
||||||
TsCellBorders = set of TsCellBorder;
|
TsCellBorders = set of TsCellBorder;
|
||||||
|
|
||||||
|
{@@ Indicates horizontal and vertical text alignment in cells }
|
||||||
|
TsHorAlignment = (haDefault, haLeft, haCenter, haRight);
|
||||||
|
TsVertAlignment = (vaDefault, vaTop, vaCenter, vaBottom);
|
||||||
|
|
||||||
{@@ Colors in FPSpreadsheet as given by a palette to be compatible with Excel.
|
{@@ Colors in FPSpreadsheet as given by a palette to be compatible with Excel.
|
||||||
However, please note that they are physically written to XLS file as
|
However, please note that they are physically written to XLS file as
|
||||||
ABGR (where A is 0) }
|
ABGR (where A is 0) }
|
||||||
@ -228,6 +232,8 @@ type
|
|||||||
{ Formatting fields }
|
{ Formatting fields }
|
||||||
UsedFormattingFields: TsUsedFormattingFields;
|
UsedFormattingFields: TsUsedFormattingFields;
|
||||||
TextRotation: TsTextRotation;
|
TextRotation: TsTextRotation;
|
||||||
|
HorAlignment: TsHorAlignment;
|
||||||
|
VertAlignment: TsVertAlignment;
|
||||||
Border: TsCellBorders;
|
Border: TsCellBorders;
|
||||||
BackgroundColor: TsColor;
|
BackgroundColor: TsColor;
|
||||||
NumberFormat: TsNumberFormat;
|
NumberFormat: TsNumberFormat;
|
||||||
@ -298,6 +304,8 @@ type
|
|||||||
procedure WriteTextRotation(ARow, ACol: Cardinal; ARotation: TsTextRotation);
|
procedure WriteTextRotation(ARow, ACol: Cardinal; ARotation: TsTextRotation);
|
||||||
procedure WriteUsedFormatting(ARow, ACol: Cardinal; AUsedFormatting: TsUsedFormattingFields);
|
procedure WriteUsedFormatting(ARow, ACol: Cardinal; AUsedFormatting: TsUsedFormattingFields);
|
||||||
procedure WriteBackgroundColor(ARow, ACol: Cardinal; AColor: TsColor);
|
procedure WriteBackgroundColor(ARow, ACol: Cardinal; AColor: TsColor);
|
||||||
|
procedure WriteHorAlignment(ARow, ACol: Cardinal; AValue: TsHorAlignment);
|
||||||
|
procedure WriteVertAlignment(ARow, ACol: Cardinal; AValue: TsVertAlignment);
|
||||||
{ Data manipulation methods - For Rows and Cols }
|
{ Data manipulation methods - For Rows and Cols }
|
||||||
function FindRow(ARow: Cardinal): PRow;
|
function FindRow(ARow: Cardinal): PRow;
|
||||||
function FindCol(ACol: Cardinal): PCol;
|
function FindCol(ACol: Cardinal): PCol;
|
||||||
@ -485,9 +493,11 @@ implementation
|
|||||||
uses
|
uses
|
||||||
Math, StrUtils;
|
Math, StrUtils;
|
||||||
|
|
||||||
var
|
|
||||||
{ Translatable strings }
|
{ Translatable strings }
|
||||||
lpUnsupportedReadFormat, lpUnsupportedWriteFormat: string;
|
resourcestring
|
||||||
|
lpUnsupportedReadFormat = 'Tried to read a spreadsheet using an unsupported format';
|
||||||
|
lpUnsupportedWriteFormat = 'Tried to write a spreadsheet using an unsupported format';
|
||||||
|
lpNoValidSpreadsheetFile = '"%s" is not a valid spreadsheet file.';
|
||||||
|
|
||||||
{@@
|
{@@
|
||||||
Registers a new reader/writer pair for a format
|
Registers a new reader/writer pair for a format
|
||||||
@ -1193,6 +1203,24 @@ begin
|
|||||||
ACell^.BackgroundColor := AColor;
|
ACell^.BackgroundColor := AColor;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TsWorksheet.WriteHorAlignment(ARow, ACol: Cardinal; AValue: TsHorAlignment);
|
||||||
|
var
|
||||||
|
lCell: PCell;
|
||||||
|
begin
|
||||||
|
lCell := GetCell(ARow, ACol);
|
||||||
|
lCell^.UsedFormattingFields := lCell^.UsedFormattingFields + [uffHorAlign];
|
||||||
|
lCell^.HorAlignment := AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TsWorksheet.WriteVertAlignment(ARow, ACol: Cardinal; AValue: TsVertAlignment);
|
||||||
|
var
|
||||||
|
lCell: PCell;
|
||||||
|
begin
|
||||||
|
lCell := GetCell(ARow, ACol);
|
||||||
|
lCell^.UsedFormattingFields := lCell^.UsedFormattingFields + [uffVertAlign];
|
||||||
|
lCell^.VertAlignment := AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
function TsWorksheet.FindRow(ARow: Cardinal): PRow;
|
function TsWorksheet.FindRow(ARow: Cardinal): PRow;
|
||||||
var
|
var
|
||||||
LElement: TRow;
|
LElement: TRow;
|
||||||
@ -1307,12 +1335,7 @@ end;
|
|||||||
constructor TsWorkbook.Create;
|
constructor TsWorkbook.Create;
|
||||||
begin
|
begin
|
||||||
inherited Create;
|
inherited Create;
|
||||||
|
|
||||||
FWorksheets := TFPList.Create;
|
FWorksheets := TFPList.Create;
|
||||||
|
|
||||||
// In the future: add support for translations
|
|
||||||
lpUnsupportedReadFormat := 'Tried to read a spreadsheet using an unsupported format';
|
|
||||||
lpUnsupportedWriteFormat := 'Tried to write a spreadsheet using an unsupported format';
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{@@
|
{@@
|
||||||
@ -1338,7 +1361,7 @@ var
|
|||||||
suffix: String;
|
suffix: String;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := True;
|
||||||
suffix := ExtractFileExt(AFileName);
|
suffix := Lowercase(ExtractFileExt(AFileName));
|
||||||
if suffix = STR_EXCEL_EXTENSION then SheetType := sfExcel8
|
if suffix = STR_EXCEL_EXTENSION then SheetType := sfExcel8
|
||||||
else if suffix = STR_OOXML_EXCEL_EXTENSION then SheetType := sfOOXML
|
else if suffix = STR_OOXML_EXCEL_EXTENSION then SheetType := sfOOXML
|
||||||
else if suffix = STR_OPENDOCUMENT_CALC_EXTENSION then SheetType := sfOpenDocument
|
else if suffix = STR_OPENDOCUMENT_CALC_EXTENSION then SheetType := sfOpenDocument
|
||||||
@ -1446,7 +1469,8 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
ReadFromFile(AFileName, SheetType);
|
ReadFromFile(AFileName, SheetType);
|
||||||
end;
|
end else
|
||||||
|
raise Exception.CreateFmt(lpNoValidSpreadsheetFile, [AFileName]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TsWorkbook.ReadFromFileIgnoringExtension(AFileName: string);
|
procedure TsWorkbook.ReadFromFileIgnoringExtension(AFileName: string);
|
||||||
@ -1713,6 +1737,12 @@ begin
|
|||||||
begin
|
begin
|
||||||
if (FFormattingStyles[i].UsedFormattingFields <> AFormat^.UsedFormattingFields) then Continue;
|
if (FFormattingStyles[i].UsedFormattingFields <> AFormat^.UsedFormattingFields) then Continue;
|
||||||
|
|
||||||
|
if uffHorAlign in AFormat^.UsedFormattingFields then
|
||||||
|
if (FFormattingStyles[i].HorAlignment <> AFormat^.HorAlignment) then Continue;
|
||||||
|
|
||||||
|
if uffVertAlign in AFormat^.UsedFormattingFields then
|
||||||
|
if (FFormattingStyles[i].VertAlignment <> AFormat^.VertAlignment) then Continue;
|
||||||
|
|
||||||
if uffTextRotation in AFormat^.UsedFormattingFields then
|
if uffTextRotation in AFormat^.UsedFormattingFields then
|
||||||
if (FFormattingStyles[i].TextRotation <> AFormat^.TextRotation) then Continue;
|
if (FFormattingStyles[i].TextRotation <> AFormat^.TextRotation) then Continue;
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ fpspreadsheetgrid.pas
|
|||||||
|
|
||||||
Grid component which can load and write data from / to FPSpreadsheet documents
|
Grid component which can load and write data from / to FPSpreadsheet documents
|
||||||
|
|
||||||
AUTHORS: Felipe Monteiro de Carvalho
|
AUTHORS: Felipe Monteiro de Carvalho, Werner Pamler
|
||||||
}
|
}
|
||||||
unit fpspreadsheetgrid;
|
unit fpspreadsheetgrid;
|
||||||
|
|
||||||
@ -190,7 +190,7 @@ end;
|
|||||||
// Converts the row height, given in mm, to pixels
|
// Converts the row height, given in mm, to pixels
|
||||||
function TsCustomWorksheetGrid.CalcRowHeight(AHeight: Single): Integer;
|
function TsCustomWorksheetGrid.CalcRowHeight(AHeight: Single): Integer;
|
||||||
begin
|
begin
|
||||||
Result := round(AHeight / 25.4 * Screen.PixelsPerInch);
|
Result := round(AHeight / 25.4 * Screen.PixelsPerInch) + 4;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TsCustomWorksheetGrid.DoPrepareCanvas(ACol, ARow: Integer;
|
procedure TsCustomWorksheetGrid.DoPrepareCanvas(ACol, ARow: Integer;
|
||||||
@ -203,20 +203,35 @@ begin
|
|||||||
ts := Canvas.TextStyle;
|
ts := Canvas.TextStyle;
|
||||||
if FDisplayFixedColRow then begin
|
if FDisplayFixedColRow then begin
|
||||||
// Formatting of row and column headers
|
// Formatting of row and column headers
|
||||||
if ARow = 0 then
|
if ARow = 0 then begin
|
||||||
ts.Alignment := taCenter
|
ts.Alignment := taCenter;
|
||||||
else
|
ts.Layout := tlCenter;
|
||||||
if ACol = 0 then
|
end else
|
||||||
|
if ACol = 0 then begin
|
||||||
ts.Alignment := taRightJustify;
|
ts.Alignment := taRightJustify;
|
||||||
|
ts.Layout := tlCenter;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
if FWorksheet <> nil then begin
|
if FWorksheet <> nil then begin
|
||||||
r := ARow - FixedRows;
|
r := ARow - FixedRows;
|
||||||
c := ACol - FixedCols;
|
c := ACol - FixedCols;
|
||||||
lCell := FWorksheet.FindCell(r, c);
|
lCell := FWorksheet.FindCell(r, c);
|
||||||
if lCell <> nil then begin
|
if lCell <> nil then begin
|
||||||
// Default alignment of number is right-justify
|
case lCell^.HorAlignment of
|
||||||
if lCell^.ContentType = cctNumber then
|
haDefault: if lCell^.ContentType = cctNumber then
|
||||||
ts.Alignment := taRightJustify;
|
ts.Alignment := taRightJustify
|
||||||
|
else
|
||||||
|
ts.Alignment := taLeftJustify;
|
||||||
|
haLeft : ts.Alignment := taLeftJustify;
|
||||||
|
haCenter : ts.Alignment := taCenter;
|
||||||
|
haRight : ts.Alignment := taRightJustify;
|
||||||
|
end;
|
||||||
|
case lCell^.VertAlignment of
|
||||||
|
vaDefault: ts.Layout := tlBottom;
|
||||||
|
vaTop : ts.Layout := tlTop;
|
||||||
|
vaCenter : ts.Layout := tlCenter;
|
||||||
|
vaBottom : ts.layout := tlBottom;
|
||||||
|
end;
|
||||||
// Word wrap?
|
// Word wrap?
|
||||||
if (uffWordWrap in lCell^.UsedFormattingFields) then begin
|
if (uffWordWrap in lCell^.UsedFormattingFields) then begin
|
||||||
ts.Wordbreak := true;
|
ts.Wordbreak := true;
|
||||||
|
@ -51,6 +51,8 @@ type
|
|||||||
procedure TestWriteReadColWidths;
|
procedure TestWriteReadColWidths;
|
||||||
// Test word wrapping
|
// Test word wrapping
|
||||||
procedure TestWriteReadWordWrap;
|
procedure TestWriteReadWordWrap;
|
||||||
|
// Test alignments
|
||||||
|
procedure TestWriteReadAlignments;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -323,12 +325,78 @@ begin
|
|||||||
if MyCell = nil then
|
if MyCell = nil then
|
||||||
fail('Error in test code. Failed to get non-wrapped cell.');
|
fail('Error in test code. Failed to get non-wrapped cell.');
|
||||||
CheckEquals((uffWordWrap in MyCell^.UsedFormattingFields), false, 'failed to return correct word-wrap flag, cell ' + CellNotation(MyWorksheet,0,0));
|
CheckEquals((uffWordWrap in MyCell^.UsedFormattingFields), false, 'failed to return correct word-wrap flag, cell ' + CellNotation(MyWorksheet,0,0));
|
||||||
// Finalization
|
|
||||||
MyWorkbook.Free;
|
MyWorkbook.Free;
|
||||||
|
|
||||||
DeleteFile(TempFile);
|
DeleteFile(TempFile);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadFormatTests.TestWriteReadAlignments;
|
||||||
|
const
|
||||||
|
CELLTEXT = 'This is a text.';
|
||||||
|
var
|
||||||
|
MyWorksheet: TsWorksheet;
|
||||||
|
MyWorkbook: TsWorkbook;
|
||||||
|
horAlign: TsHorAlignment;
|
||||||
|
vertAlign: TsVertAlignment;
|
||||||
|
row, col: Integer;
|
||||||
|
MyCell: PCell;
|
||||||
|
TempFile: string; //write xls/xml to this file and read back from it
|
||||||
|
begin
|
||||||
|
TempFile:=GetTempFileName;
|
||||||
|
{// Not needed: use workbook.writetofile with overwrite=true
|
||||||
|
if fileexists(TempFile) then
|
||||||
|
DeleteFile(TempFile);
|
||||||
|
}
|
||||||
|
// Write out all test values: HorAlignments along columns, VertAlignments along rows
|
||||||
|
MyWorkbook := TsWorkbook.Create;
|
||||||
|
MyWorkSheet:= MyWorkBook.AddWorksheet(FmtNumbersSheet);
|
||||||
|
|
||||||
|
row := 0;
|
||||||
|
for horAlign in TsHorAlignment do begin
|
||||||
|
col := 0;
|
||||||
|
for vertAlign in TsVertAlignment do begin
|
||||||
|
MyWorksheet.WriteUTF8Text(row, col, CELLTEXT);
|
||||||
|
MyWorksheet.WriteHorAlignment(row, col, horAlign);
|
||||||
|
MyWorksheet.WriteVertAlignment(row, col, vertAlign);
|
||||||
|
MyCell := MyWorksheet.FindCell(row, col);
|
||||||
|
if MyCell = nil then
|
||||||
|
fail('Error in test code. Failed to get cell.');
|
||||||
|
CheckEquals(vertAlign = MyCell^.VertAlignment, true,
|
||||||
|
'Test unsaved word vertical alignment, cell ' + CellNotation(MyWorksheet,0,0));
|
||||||
|
CheckEquals(horAlign = MyCell^.HorAlignment, true,
|
||||||
|
'Test unsaved word horizontal alignment, cell ' + CellNotation(MyWorksheet,0,0));
|
||||||
|
inc(col);
|
||||||
|
end;
|
||||||
|
inc(row);
|
||||||
|
end;
|
||||||
|
MyWorkBook.WriteToFile(TempFile,sfExcel8,true);
|
||||||
|
MyWorkbook.Free;
|
||||||
|
|
||||||
|
// Open the spreadsheet, as biff8
|
||||||
|
MyWorkbook := TsWorkbook.Create;
|
||||||
|
MyWorkbook.ReadFromFile(TempFile, sfExcel8);
|
||||||
|
MyWorksheet:=GetWorksheetByName(MyWorkBook, FmtNumbersSheet);
|
||||||
|
if MyWorksheet=nil then
|
||||||
|
fail('Error in test code. Failed to get named worksheet');
|
||||||
|
for row := 0 to MyWorksheet.GetLastRowNumber do
|
||||||
|
for col := 0 to MyWorksheet.GetLastColNumber do begin
|
||||||
|
MyCell := MyWorksheet.FindCell(row, col);
|
||||||
|
if MyCell = nil then
|
||||||
|
fail('Error in test code. Failed to get cell.');
|
||||||
|
vertAlign := TsVertAlignment(col);
|
||||||
|
if vertAlign = vaDefault then vertAlign := vaBottom;
|
||||||
|
CheckEquals(vertAlign = MyCell^.VertAlignment, true,
|
||||||
|
'Test saved vertical alignment mismatch, cell '+CellNotation(MyWorksheet,Row,Col));
|
||||||
|
horAlign := TsHorAlignment(row);
|
||||||
|
CheckEquals(horAlign = MyCell^.HorAlignment, true,
|
||||||
|
'Test saved horizontal mismatch, cell '+CellNotation(MyWorksheet,Row,Col));
|
||||||
|
end;
|
||||||
|
MyWorkbook.Free;
|
||||||
|
|
||||||
|
DeleteFile(TempFile);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
RegisterTest(TSpreadWriteReadFormatTests);
|
RegisterTest(TSpreadWriteReadFormatTests);
|
||||||
InitSollFmtData;
|
InitSollFmtData;
|
||||||
|
@ -66,6 +66,8 @@ type
|
|||||||
TXFRecordData = class
|
TXFRecordData = class
|
||||||
public
|
public
|
||||||
FormatIndex: Integer;
|
FormatIndex: Integer;
|
||||||
|
HorAlignment: TsHorAlignment;
|
||||||
|
VertAlignment: TsVertAlignment;
|
||||||
WordWrap: Boolean;
|
WordWrap: Boolean;
|
||||||
Borders: TsCellBorders;
|
Borders: TsCellBorders;
|
||||||
{
|
{
|
||||||
@ -159,7 +161,8 @@ type
|
|||||||
procedure WriteColInfo(AStream: TStream; ASheet: TsWorksheet; ACol: PCol);
|
procedure WriteColInfo(AStream: TStream; ASheet: TsWorksheet; ACol: PCol);
|
||||||
procedure WriteXF(AStream: TStream; AFontIndex: Word;
|
procedure WriteXF(AStream: TStream; AFontIndex: Word;
|
||||||
AFormatIndex: Word; AXF_TYPE_PROT, ATextRotation: Byte; ABorders: TsCellBorders;
|
AFormatIndex: Word; AXF_TYPE_PROT, ATextRotation: Byte; ABorders: TsCellBorders;
|
||||||
AddWordWrap: Boolean = false; AddBackground: Boolean = false;
|
AHorAlignment: TsHorAlignment = haDefault; AVertAlignment: TsVertAlignment = vaDefault;
|
||||||
|
AWordWrap: Boolean = false; AddBackground: Boolean = false;
|
||||||
ABackgroundColor: TsColor = scSilver);
|
ABackgroundColor: TsColor = scSilver);
|
||||||
public
|
public
|
||||||
// constructor Create;
|
// constructor Create;
|
||||||
@ -289,9 +292,18 @@ const
|
|||||||
MASK_XF_USED_ATTRIB_BACKGROUND = $40;
|
MASK_XF_USED_ATTRIB_BACKGROUND = $40;
|
||||||
MASK_XF_USED_ATTRIB_CELL_PROTECTION = $80;
|
MASK_XF_USED_ATTRIB_CELL_PROTECTION = $80;
|
||||||
|
|
||||||
|
{ XF HORIZONTAL ALIGN }
|
||||||
|
MASK_XF_HOR_ALIGN_LEFT = $01;
|
||||||
|
MASK_XF_HOR_ALIGN_CENTER = $02;
|
||||||
|
MASK_XF_HOR_ALIGN_RIGHT = $03;
|
||||||
|
MASK_XF_HOR_ALIGN_FILLED = $04;
|
||||||
|
MASK_XF_HOR_ALIGN_JUSTIFIED = $05; // BIFF4-BIFF8
|
||||||
|
MASK_XF_HOR_ALIGN_CENTERED_SELECTION= $06; // BIFF4-BIFF8
|
||||||
|
MASK_XF_HOR_ALIGN_DISTRIBUTED = $07; // BIFF8
|
||||||
|
|
||||||
{ XF_VERT_ALIGN }
|
{ XF_VERT_ALIGN }
|
||||||
MASK_XF_VERT_ALIGN_TOP = $00;
|
MASK_XF_VERT_ALIGN_TOP = $00;
|
||||||
MASK_XF_VERT_ALIGN_CENTRED = $10;
|
MASK_XF_VERT_ALIGN_CENTER = $10;
|
||||||
MASK_XF_VERT_ALIGN_BOTTOM = $20;
|
MASK_XF_VERT_ALIGN_BOTTOM = $20;
|
||||||
MASK_XF_VERT_ALIGN_JUSTIFIED = $30;
|
MASK_XF_VERT_ALIGN_JUSTIFIED = $30;
|
||||||
|
|
||||||
@ -300,6 +312,12 @@ const
|
|||||||
XF_ROTATION_90_DEGREE_COUNTERCLOCKWISE = 90;
|
XF_ROTATION_90_DEGREE_COUNTERCLOCKWISE = 90;
|
||||||
XF_ROTATION_90_DEGREE_CLOCKWISE = 180;
|
XF_ROTATION_90_DEGREE_CLOCKWISE = 180;
|
||||||
|
|
||||||
|
{ XF CELL BORDER }
|
||||||
|
MASK_XF_BORDER_LEFT = $0000000F;
|
||||||
|
MASK_XF_BORDER_RIGHT = $000000F0;
|
||||||
|
MASK_XF_BORDER_TOP = $00000F00;
|
||||||
|
MASK_XF_BORDER_BOTTOM = $0000F000;
|
||||||
|
|
||||||
{ XF record constants }
|
{ XF record constants }
|
||||||
MASK_XF_TYPE_PROT = $0007;
|
MASK_XF_TYPE_PROT = $0007;
|
||||||
MASK_XF_TYPE_PROT_PARENT = $FFF0;
|
MASK_XF_TYPE_PROT_PARENT = $FFF0;
|
||||||
@ -308,6 +326,7 @@ const
|
|||||||
MASK_XF_VERT_ALIGN = $70;
|
MASK_XF_VERT_ALIGN = $70;
|
||||||
MASK_XF_TEXTWRAP = $08;
|
MASK_XF_TEXTWRAP = $08;
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
Exported functions
|
Exported functions
|
||||||
}
|
}
|
||||||
@ -396,6 +415,8 @@ var
|
|||||||
lBorders: TsCellBorders;
|
lBorders: TsCellBorders;
|
||||||
lAddBackground: Boolean;
|
lAddBackground: Boolean;
|
||||||
lBackgroundColor: TsColor;
|
lBackgroundColor: TsColor;
|
||||||
|
lHorAlign: TsHorAlignment;
|
||||||
|
lVertAlign: TsVertAlignment;
|
||||||
lWordWrap: Boolean;
|
lWordWrap: Boolean;
|
||||||
fmt: String;
|
fmt: String;
|
||||||
begin
|
begin
|
||||||
@ -407,6 +428,8 @@ begin
|
|||||||
lFormatIndex := 0; //General format (one of the built-in number formats)
|
lFormatIndex := 0; //General format (one of the built-in number formats)
|
||||||
lTextRotation := XF_ROTATION_HORIZONTAL;
|
lTextRotation := XF_ROTATION_HORIZONTAL;
|
||||||
lBorders := [];
|
lBorders := [];
|
||||||
|
lHorAlign := FFormattingStyles[i].HorAlignment;
|
||||||
|
lVertAlign := FFormattingStyles[i].VertAlignment;
|
||||||
lBackgroundColor := FFormattingStyles[i].BackgroundColor;
|
lBackgroundColor := FFormattingStyles[i].BackgroundColor;
|
||||||
|
|
||||||
// Now apply the modifications.
|
// Now apply the modifications.
|
||||||
@ -488,8 +511,8 @@ begin
|
|||||||
lWordwrap := (uffWordwrap in FFormattingStyles[i].UsedFormattingFields);
|
lWordwrap := (uffWordwrap in FFormattingStyles[i].UsedFormattingFields);
|
||||||
|
|
||||||
// And finally write the style
|
// And finally write the style
|
||||||
WriteXF(AStream, lFontIndex, lFormatIndex, 0, lTextRotation, lBorders, lWordwrap,
|
WriteXF(AStream, lFontIndex, lFormatIndex, 0, lTextRotation, lBorders,
|
||||||
lAddBackground, lBackgroundColor);
|
lHorAlign, lVertAlign, lWordwrap, lAddBackground, lBackgroundColor);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -648,6 +671,7 @@ begin
|
|||||||
WriteXF(AStream, 0, 0, 0, XF_ROTATION_90_DEGREE_CLOCKWISE, []);
|
WriteXF(AStream, 0, 0, 0, XF_ROTATION_90_DEGREE_CLOCKWISE, []);
|
||||||
// XF18 - Bold
|
// XF18 - Bold
|
||||||
WriteXF(AStream, 1, 0, 0, XF_ROTATION_HORIZONTAL, []);
|
WriteXF(AStream, 1, 0, 0, XF_ROTATION_HORIZONTAL, []);
|
||||||
|
|
||||||
// Add all further non-standard/built-in formatting styles
|
// Add all further non-standard/built-in formatting styles
|
||||||
ListAllFormattingStyles(AData);
|
ListAllFormattingStyles(AData);
|
||||||
WriteXFFieldsForFormattingStyles(AStream);
|
WriteXFFieldsForFormattingStyles(AStream);
|
||||||
@ -1525,7 +1549,8 @@ end;
|
|||||||
*******************************************************************}
|
*******************************************************************}
|
||||||
procedure TsSpreadBIFF8Writer.WriteXF(AStream: TStream; AFontIndex: Word;
|
procedure TsSpreadBIFF8Writer.WriteXF(AStream: TStream; AFontIndex: Word;
|
||||||
AFormatIndex: Word; AXF_TYPE_PROT, ATextRotation: Byte; ABorders: TsCellBorders;
|
AFormatIndex: Word; AXF_TYPE_PROT, ATextRotation: Byte; ABorders: TsCellBorders;
|
||||||
AddWordWrap: Boolean = false; AddBackground: Boolean = false;
|
AHorAlignment: TsHorAlignment = haDefault; AVertAlignment: TsVertAlignment = vaDefault;
|
||||||
|
AWordWrap: Boolean = false; AddBackground: Boolean = false;
|
||||||
ABackgroundColor: TsColor = scSilver);
|
ABackgroundColor: TsColor = scSilver);
|
||||||
var
|
var
|
||||||
XFOptions: Word;
|
XFOptions: Word;
|
||||||
@ -1551,8 +1576,19 @@ begin
|
|||||||
AStream.WriteWord(WordToLE(XFOptions));
|
AStream.WriteWord(WordToLE(XFOptions));
|
||||||
|
|
||||||
{ Alignment and text break }
|
{ Alignment and text break }
|
||||||
XFAlignment := MASK_XF_VERT_ALIGN_BOTTOM;
|
XFAlignment := 0;
|
||||||
if AddWordWrap then
|
case AHorAlignment of
|
||||||
|
haLeft : XFAlignment := XFAlignment or MASK_XF_HOR_ALIGN_LEFT;
|
||||||
|
haCenter : XFAlignment := XFAlignment or MASK_XF_HOR_ALIGN_CENTER;
|
||||||
|
haRight : XFAlignment := XFAlignment or MASK_XF_HOR_ALIGN_RIGHT;
|
||||||
|
end;
|
||||||
|
case AVertAlignment of
|
||||||
|
vaTop : XFAlignment := XFAlignment or MASK_XF_VERT_ALIGN_TOP;
|
||||||
|
vaCenter : XFAlignment := XFAlignment or MASK_XF_VERT_ALIGN_CENTER;
|
||||||
|
vaBottom : XFAlignment := XFAlignment or MASK_XF_VERT_ALIGN_BOTTOM;
|
||||||
|
else XFAlignment := XFAlignment or MASK_XF_VERT_ALIGN_BOTTOM;
|
||||||
|
end;
|
||||||
|
if AWordWrap then
|
||||||
XFAlignment := XFAlignment or MASK_XF_TEXTWRAP;
|
XFAlignment := XFAlignment or MASK_XF_TEXTWRAP;
|
||||||
|
|
||||||
AStream.WriteByte(XFAlignment);
|
AStream.WriteByte(XFAlignment);
|
||||||
@ -2058,6 +2094,10 @@ begin
|
|||||||
if Assigned(lCell) then begin
|
if Assigned(lCell) then begin
|
||||||
XFData := TXFRecordData(FXFList.Items[XFIndex]);
|
XFData := TXFRecordData(FXFList.Items[XFIndex]);
|
||||||
|
|
||||||
|
// Alignment
|
||||||
|
lCell^.HorAlignment := XFData.HorAlignment;
|
||||||
|
lCell^.VertAlignment := XFData.VertAlignment;
|
||||||
|
|
||||||
// Word wrap
|
// Word wrap
|
||||||
if XFData.WordWrap then
|
if XFData.WordWrap then
|
||||||
Include(lCell^.UsedFormattingFields, uffWordWrap)
|
Include(lCell^.UsedFormattingFields, uffWordWrap)
|
||||||
@ -2395,6 +2435,7 @@ type
|
|||||||
var
|
var
|
||||||
lData: TXFRecordData;
|
lData: TXFRecordData;
|
||||||
xf: TXFRecord;
|
xf: TXFRecord;
|
||||||
|
b: Byte;
|
||||||
begin
|
begin
|
||||||
AStream.ReadBuffer(xf, SizeOf(xf));
|
AStream.ReadBuffer(xf, SizeOf(xf));
|
||||||
|
|
||||||
@ -2403,6 +2444,20 @@ begin
|
|||||||
// Format index
|
// Format index
|
||||||
lData.FormatIndex := WordLEToN(xf.FormatIndex);
|
lData.FormatIndex := WordLEToN(xf.FormatIndex);
|
||||||
|
|
||||||
|
// Horizontal text alignment
|
||||||
|
b := xf.Align_TextBreak AND MASK_XF_HOR_ALIGN;
|
||||||
|
if (b <= ord(High(TsHorAlignment))) then
|
||||||
|
lData.HorAlignment := TsHorAlignment(b)
|
||||||
|
else
|
||||||
|
lData.HorAlignment := haDefault;
|
||||||
|
|
||||||
|
// Vertical text alignment
|
||||||
|
b := (xf.Align_TextBreak AND MASK_XF_VERT_ALIGN) shr 4;
|
||||||
|
if (b + 1 <= ord(high(TsVertAlignment))) then
|
||||||
|
lData.VertAlignment := tsVertAlignment(b + 1) // + 1 due to vaDefault
|
||||||
|
else
|
||||||
|
lData.VertAlignment := vaDefault;
|
||||||
|
|
||||||
// Word wrap
|
// Word wrap
|
||||||
lData.WordWrap := (xf.Align_TextBreak and MASK_XF_TEXTWRAP) <> 0;
|
lData.WordWrap := (xf.Align_TextBreak and MASK_XF_TEXTWRAP) <> 0;
|
||||||
|
|
||||||
@ -2411,13 +2466,13 @@ begin
|
|||||||
lData.Borders := [];
|
lData.Borders := [];
|
||||||
// the 4 masked bits encode the line style of the border line. 0 = no line
|
// the 4 masked bits encode the line style of the border line. 0 = no line
|
||||||
// We ignore the line style here. --> check against "no line"
|
// We ignore the line style here. --> check against "no line"
|
||||||
if xf.Border_Background_1 and $0000000F <> 0 then
|
if xf.Border_Background_1 and MASK_XF_BORDER_LEFT <> 0 then
|
||||||
Include(lData.Borders, cbWest);
|
Include(lData.Borders, cbWest);
|
||||||
if xf.Border_Background_1 and $000000F0 <> 0 then
|
if xf.Border_Background_1 and MASK_XF_BORDER_RIGHT <> 0 then
|
||||||
Include(lData.Borders, cbEast);
|
Include(lData.Borders, cbEast);
|
||||||
if xf.Border_Background_1 and $00000F00 <> 0 then
|
if xf.Border_Background_1 and MASK_XF_BORDER_TOP <> 0 then
|
||||||
Include(lData.Borders, cbNorth);
|
Include(lData.Borders, cbNorth);
|
||||||
if xf.Border_Background_1 and $0000F000 <> 0 then
|
if xf.Border_Background_1 and MASK_XF_BORDER_BOTTOM <> 0 then
|
||||||
Include(lData.Borders, cbSouth);
|
Include(lData.Borders, cbSouth);
|
||||||
|
|
||||||
// Add the XF to the list
|
// Add the XF to the list
|
||||||
|
@ -862,19 +862,22 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
{ This function checks whether the format string corresponds to exponential
|
{ This function checks whether the format string corresponds to exponential
|
||||||
formatting and determines the number decimals }
|
formatting and determines the number of decimals }
|
||||||
function IsExpNumberFormat(s: String; out Decimals: Word): Boolean;
|
function IsExpNumberFormat(s: String; out Decimals: Word): Boolean;
|
||||||
var
|
var
|
||||||
i, p, pe: Integer;
|
i, p, pe: Integer;
|
||||||
begin
|
begin
|
||||||
|
Result := false;
|
||||||
Decimals := 0;
|
Decimals := 0;
|
||||||
|
|
||||||
|
if SameText(s, 'General') then
|
||||||
|
exit;
|
||||||
|
|
||||||
// Check for a valid format string
|
// Check for a valid format string
|
||||||
try
|
try
|
||||||
FormatDateTime(s, 1.0);
|
FormatDateTime(s, 1.0);
|
||||||
except
|
except
|
||||||
on EConvertError do begin
|
on EConvertError do begin
|
||||||
Result := false;
|
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
Reference in New Issue
Block a user