Fixed Linux file permissions; Added two view bitmodes; Removed bitmode resetting after selection another Tim.
This commit is contained in:
15
tim2view.lpi
15
tim2view.lpi
@@ -24,6 +24,7 @@
|
|||||||
<AutoIncrementBuild Value="True"/>
|
<AutoIncrementBuild Value="True"/>
|
||||||
<MajorVersionNr Value="1"/>
|
<MajorVersionNr Value="1"/>
|
||||||
<RevisionNr Value="67"/>
|
<RevisionNr Value="67"/>
|
||||||
|
<BuildNr Value="2"/>
|
||||||
<StringTable CompanyName="Lab 313" FileDescription="The best TIMs tool ever!:)" ProductVersion=""/>
|
<StringTable CompanyName="Lab 313" FileDescription="The best TIMs tool ever!:)" ProductVersion=""/>
|
||||||
</VersionInfo>
|
</VersionInfo>
|
||||||
<BuildModes Count="1">
|
<BuildModes Count="1">
|
||||||
@@ -42,7 +43,7 @@
|
|||||||
<PackageName Value="LCL"/>
|
<PackageName Value="LCL"/>
|
||||||
</Item1>
|
</Item1>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="13">
|
<Units Count="14">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="tim2view.lpr"/>
|
<Filename Value="tim2view.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
@@ -111,6 +112,10 @@
|
|||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="BGRABitmap"/>
|
<UnitName Value="BGRABitmap"/>
|
||||||
</Unit12>
|
</Unit12>
|
||||||
|
<Unit13>
|
||||||
|
<Filename Value="todos.inc"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
</Unit13>
|
||||||
</Units>
|
</Units>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
@@ -130,15 +135,7 @@
|
|||||||
<UseAnsiStrings Value="False"/>
|
<UseAnsiStrings Value="False"/>
|
||||||
</SyntaxOptions>
|
</SyntaxOptions>
|
||||||
</Parsing>
|
</Parsing>
|
||||||
<CodeGeneration>
|
|
||||||
<SmartLinkUnit Value="True"/>
|
|
||||||
<RelocatableUnit Value="True"/>
|
|
||||||
</CodeGeneration>
|
|
||||||
<Linking>
|
<Linking>
|
||||||
<Debugging>
|
|
||||||
<DebugInfoType Value="dsDwarf2Set"/>
|
|
||||||
</Debugging>
|
|
||||||
<LinkSmart Value="True"/>
|
|
||||||
<Options>
|
<Options>
|
||||||
<Win32>
|
<Win32>
|
||||||
<GraphicApplication Value="True"/>
|
<GraphicApplication Value="True"/>
|
||||||
|
|||||||
81
tim2view.lps
81
tim2view.lps
@@ -4,16 +4,16 @@
|
|||||||
<PathDelim Value="\"/>
|
<PathDelim Value="\"/>
|
||||||
<Version Value="9"/>
|
<Version Value="9"/>
|
||||||
<BuildModes Active="Default"/>
|
<BuildModes Active="Default"/>
|
||||||
<Units Count="13">
|
<Units Count="14">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="tim2view.lpr"/>
|
<Filename Value="tim2view.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="tim2view"/>
|
<UnitName Value="tim2view"/>
|
||||||
<EditorIndex Value="5"/>
|
<EditorIndex Value="8"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<CursorPos X="52" Y="16"/>
|
<CursorPos X="52" Y="16"/>
|
||||||
<UsageCount Value="33"/>
|
<UsageCount Value="40"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit0>
|
</Unit0>
|
||||||
<Unit1>
|
<Unit1>
|
||||||
@@ -23,12 +23,11 @@
|
|||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
<UnitName Value="umain"/>
|
<UnitName Value="umain"/>
|
||||||
<IsVisibleTab Value="True"/>
|
|
||||||
<EditorIndex Value="0"/>
|
<EditorIndex Value="0"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="242"/>
|
<TopLine Value="427"/>
|
||||||
<CursorPos X="87" Y="265"/>
|
<CursorPos X="9" Y="450"/>
|
||||||
<UsageCount Value="33"/>
|
<UsageCount Value="40"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
<LoadedDesigner Value="True"/>
|
<LoadedDesigner Value="True"/>
|
||||||
</Unit1>
|
</Unit1>
|
||||||
@@ -36,34 +35,40 @@
|
|||||||
<Filename Value="edc.pas"/>
|
<Filename Value="edc.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="edc"/>
|
<UnitName Value="edc"/>
|
||||||
<UsageCount Value="33"/>
|
<UsageCount Value="40"/>
|
||||||
</Unit2>
|
</Unit2>
|
||||||
<Unit3>
|
<Unit3>
|
||||||
<Filename Value="ecc.pas"/>
|
<Filename Value="ecc.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="ecc"/>
|
<UnitName Value="ecc"/>
|
||||||
<UsageCount Value="33"/>
|
<EditorIndex Value="1"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="13"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<UsageCount Value="40"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
</Unit3>
|
</Unit3>
|
||||||
<Unit4>
|
<Unit4>
|
||||||
<Filename Value="ucommon.pas"/>
|
<Filename Value="ucommon.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="ucommon"/>
|
<UnitName Value="ucommon"/>
|
||||||
<EditorIndex Value="1"/>
|
<IsVisibleTab Value="True"/>
|
||||||
|
<EditorIndex Value="2"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<CursorPos X="56" Y="12"/>
|
<CursorPos X="35" Y="6"/>
|
||||||
<UsageCount Value="33"/>
|
<UsageCount Value="40"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit4>
|
</Unit4>
|
||||||
<Unit5>
|
<Unit5>
|
||||||
<Filename Value="utim.pas"/>
|
<Filename Value="utim.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="utim"/>
|
<UnitName Value="utim"/>
|
||||||
<EditorIndex Value="3"/>
|
<EditorIndex Value="5"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="285"/>
|
<TopLine Value="431"/>
|
||||||
<CursorPos X="31" Y="299"/>
|
<CursorPos X="65" Y="447"/>
|
||||||
<UsageCount Value="33"/>
|
<UsageCount Value="40"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit5>
|
</Unit5>
|
||||||
<Unit6>
|
<Unit6>
|
||||||
@@ -73,62 +78,74 @@
|
|||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="81"/>
|
<TopLine Value="81"/>
|
||||||
<CursorPos X="95" Y="89"/>
|
<CursorPos X="95" Y="89"/>
|
||||||
<UsageCount Value="33"/>
|
<UsageCount Value="40"/>
|
||||||
</Unit6>
|
</Unit6>
|
||||||
<Unit7>
|
<Unit7>
|
||||||
<Filename Value="usettings.pas"/>
|
<Filename Value="usettings.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="usettings"/>
|
<UnitName Value="usettings"/>
|
||||||
|
<EditorIndex Value="3"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="17"/>
|
<TopLine Value="81"/>
|
||||||
<CursorPos X="76" Y="31"/>
|
<CursorPos X="55" Y="92"/>
|
||||||
<UsageCount Value="33"/>
|
<UsageCount Value="40"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
</Unit7>
|
</Unit7>
|
||||||
<Unit8>
|
<Unit8>
|
||||||
<Filename Value="uscanresult.pas"/>
|
<Filename Value="uscanresult.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="uscanresult"/>
|
<UnitName Value="uscanresult"/>
|
||||||
<EditorIndex Value="6"/>
|
<EditorIndex Value="9"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="16"/>
|
<TopLine Value="16"/>
|
||||||
<CursorPos X="64" Y="25"/>
|
<CursorPos X="64" Y="25"/>
|
||||||
<UsageCount Value="33"/>
|
<UsageCount Value="40"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit8>
|
</Unit8>
|
||||||
<Unit9>
|
<Unit9>
|
||||||
<Filename Value="uscanthread.pas"/>
|
<Filename Value="uscanthread.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="uscanthread"/>
|
<UnitName Value="uscanthread"/>
|
||||||
<EditorIndex Value="2"/>
|
<EditorIndex Value="4"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="79"/>
|
<TopLine Value="1"/>
|
||||||
<CursorPos X="75" Y="120"/>
|
<CursorPos X="53" Y="88"/>
|
||||||
<UsageCount Value="33"/>
|
<UsageCount Value="40"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit9>
|
</Unit9>
|
||||||
<Unit10>
|
<Unit10>
|
||||||
<Filename Value="ucpucount.pas"/>
|
<Filename Value="ucpucount.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="ucpucount"/>
|
<UnitName Value="ucpucount"/>
|
||||||
<UsageCount Value="33"/>
|
<UsageCount Value="40"/>
|
||||||
</Unit10>
|
</Unit10>
|
||||||
<Unit11>
|
<Unit11>
|
||||||
<Filename Value="udrawtim.pas"/>
|
<Filename Value="udrawtim.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="udrawtim"/>
|
<UnitName Value="udrawtim"/>
|
||||||
<EditorIndex Value="4"/>
|
<EditorIndex Value="6"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="40"/>
|
<TopLine Value="76"/>
|
||||||
<CursorPos X="21" Y="45"/>
|
<CursorPos X="62" Y="41"/>
|
||||||
<UsageCount Value="33"/>
|
<UsageCount Value="40"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit11>
|
</Unit11>
|
||||||
<Unit12>
|
<Unit12>
|
||||||
<Filename Value="bgrabitmap\bgrabitmap.pas"/>
|
<Filename Value="bgrabitmap\bgrabitmap.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="BGRABitmap"/>
|
<UnitName Value="BGRABitmap"/>
|
||||||
<UsageCount Value="33"/>
|
<UsageCount Value="40"/>
|
||||||
</Unit12>
|
</Unit12>
|
||||||
|
<Unit13>
|
||||||
|
<Filename Value="todos.inc"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<EditorIndex Value="7"/>
|
||||||
|
<WindowIndex Value="0"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<CursorPos X="94" Y="2"/>
|
||||||
|
<UsageCount Value="26"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit13>
|
||||||
</Units>
|
</Units>
|
||||||
<General>
|
<General>
|
||||||
<ActiveWindowIndexAtStart Value="0"/>
|
<ActiveWindowIndexAtStart Value="0"/>
|
||||||
|
|||||||
BIN
tim2view.res
BIN
tim2view.res
Binary file not shown.
@@ -3,7 +3,7 @@ unit ucommon;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
const
|
const
|
||||||
cProgramName = 'Tim2View SVN.r67 by [Lab 313] (for ' +
|
cProgramName = 'Tim2View SVN.r70 by [Lab 313] (for ' +
|
||||||
{$IFDEF Linux}'Linux' + {$IFEND}
|
{$IFDEF Linux}'Linux' + {$IFEND}
|
||||||
{$IFDEF Darwin}'Mac OS X' + {$IFEND}
|
{$IFDEF Darwin}'Mac OS X' + {$IFEND}
|
||||||
{$IFDEF Windows}'Windows' + {$IFEND}
|
{$IFDEF Windows}'Windows' + {$IFEND}
|
||||||
@@ -18,7 +18,7 @@ const
|
|||||||
sStatusBarScanningFile = 'Scanning File...';
|
sStatusBarScanningFile = 'Scanning File...';
|
||||||
sStatusBarTimsExtracting = 'TIMs Extracting...';
|
sStatusBarTimsExtracting = 'TIMs Extracting...';
|
||||||
sStatusBarPngsExtracting = 'PNGs Extracting...';
|
sStatusBarPngsExtracting = 'PNGs Extracting...';
|
||||||
sStatusBarExtracted = 'Exctracted Successfully!';
|
sStatusBarExtracted = 'Extracted Successfully!';
|
||||||
sStatusBarParsingResult = 'Parsing Result...';
|
sStatusBarParsingResult = 'Parsing Result...';
|
||||||
sScanResultGood = 'Scan completed!';
|
sScanResultGood = 'Scan completed!';
|
||||||
sSelectDirCaption = 'Please, select directory for scan...';
|
sSelectDirCaption = 'Please, select directory for scan...';
|
||||||
|
|||||||
127
umain.lfm
127
umain.lfm
@@ -1,7 +1,7 @@
|
|||||||
object frmMain: TfrmMain
|
object frmMain: TfrmMain
|
||||||
Left = 561
|
Left = 807
|
||||||
Height = 590
|
Height = 590
|
||||||
Top = 213
|
Top = 193
|
||||||
Width = 780
|
Width = 780
|
||||||
HorzScrollBar.Page = 780
|
HorzScrollBar.Page = 780
|
||||||
HorzScrollBar.Range = 489
|
HorzScrollBar.Range = 489
|
||||||
@@ -524,6 +524,7 @@ object frmMain: TfrmMain
|
|||||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||||
Smooth = True
|
Smooth = True
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
|
BarShowText = True
|
||||||
end
|
end
|
||||||
object btnStopScan: TButton
|
object btnStopScan: TButton
|
||||||
Left = 1
|
Left = 1
|
||||||
@@ -581,7 +582,6 @@ object frmMain: TfrmMain
|
|||||||
Top = 28
|
Top = 28
|
||||||
Width = 253
|
Width = 253
|
||||||
Align = alClient
|
Align = alClient
|
||||||
AutoWidthLastColumn = True
|
|
||||||
Columns = <
|
Columns = <
|
||||||
item
|
item
|
||||||
Caption = '# / 0'
|
Caption = '# / 0'
|
||||||
@@ -600,7 +600,7 @@ object frmMain: TfrmMain
|
|||||||
item
|
item
|
||||||
Alignment = taCenter
|
Alignment = taCenter
|
||||||
Caption = 'CLUTs'
|
Caption = 'CLUTs'
|
||||||
Width = 84
|
Width = 57
|
||||||
end>
|
end>
|
||||||
ColumnClick = False
|
ColumnClick = False
|
||||||
GridLines = True
|
GridLines = True
|
||||||
@@ -656,61 +656,23 @@ object frmMain: TfrmMain
|
|||||||
Color = clBtnFace
|
Color = clBtnFace
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object splImageClut: TSplitter
|
|
||||||
Cursor = crVSplit
|
|
||||||
Left = 1
|
|
||||||
Height = 3
|
|
||||||
Top = 1
|
|
||||||
Width = 520
|
|
||||||
Align = alTop
|
|
||||||
Beveled = True
|
|
||||||
Color = clBtnFace
|
|
||||||
ParentColor = False
|
|
||||||
ResizeAnchor = akTop
|
|
||||||
end
|
|
||||||
object grdCurrClut: TDrawGrid
|
|
||||||
Left = 1
|
|
||||||
Height = 150
|
|
||||||
Top = 320
|
|
||||||
Width = 520
|
|
||||||
Align = alBottom
|
|
||||||
AutoEdit = False
|
|
||||||
ColCount = 1
|
|
||||||
DefaultColWidth = 14
|
|
||||||
DefaultRowHeight = 14
|
|
||||||
Enabled = False
|
|
||||||
ExtendedSelect = False
|
|
||||||
FixedCols = 0
|
|
||||||
FixedRows = 0
|
|
||||||
Options = [goFixedVertLine, goFixedHorzLine, goDrawFocusSelected]
|
|
||||||
RowCount = 1
|
|
||||||
ScrollBars = ssAutoVertical
|
|
||||||
TabOrder = 0
|
|
||||||
TitleFont.Color = clWindowText
|
|
||||||
TitleFont.Height = -11
|
|
||||||
TitleFont.Name = 'Tahoma'
|
|
||||||
UseXORFeatures = True
|
|
||||||
Visible = False
|
|
||||||
OnDblClick = grdCurrClutDblClick
|
|
||||||
OnDrawCell = grdCurrClutDrawCell
|
|
||||||
end
|
|
||||||
object pnlImageOptions: TPanel
|
object pnlImageOptions: TPanel
|
||||||
Left = 1
|
Left = 1
|
||||||
Height = 25
|
Height = 27
|
||||||
Top = 470
|
Top = 468
|
||||||
Width = 520
|
Width = 520
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvLowered
|
||||||
ClientHeight = 25
|
ClientHeight = 27
|
||||||
ClientWidth = 520
|
ClientWidth = 520
|
||||||
Color = clBtnFace
|
Color = clBtnFace
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
TabOrder = 1
|
TabOrder = 0
|
||||||
object btnShowClut: TButton
|
object btnShowClut: TButton
|
||||||
Left = 467
|
Left = 466
|
||||||
Height = 23
|
Height = 23
|
||||||
Top = 1
|
Top = 2
|
||||||
Width = 52
|
Width = 52
|
||||||
Align = alRight
|
Align = alRight
|
||||||
BorderSpacing.Around = 1
|
BorderSpacing.Around = 1
|
||||||
@@ -719,18 +681,20 @@ object frmMain: TfrmMain
|
|||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
end
|
end
|
||||||
object cbbBitMode: TComboBox
|
object cbbBitMode: TComboBox
|
||||||
Left = 1
|
Left = 2
|
||||||
Height = 21
|
Height = 21
|
||||||
Top = 1
|
Top = 2
|
||||||
Width = 90
|
Width = 159
|
||||||
Align = alLeft
|
Align = alLeft
|
||||||
BorderSpacing.Around = 1
|
BorderSpacing.Around = 1
|
||||||
ItemHeight = 13
|
ItemHeight = 13
|
||||||
ItemIndex = 0
|
ItemIndex = 0
|
||||||
Items.Strings = (
|
Items.Strings = (
|
||||||
'Real'
|
'Real'
|
||||||
'4 BPP'
|
'4 BPP (Inner palette)'
|
||||||
'8 BPP'
|
'4 BPP (Random palette) '
|
||||||
|
'8 BPP (Inner palette)'
|
||||||
|
'8 BPP (Random palette)'
|
||||||
'16 BPP'
|
'16 BPP'
|
||||||
'24 BPP'
|
'24 BPP'
|
||||||
)
|
)
|
||||||
@@ -741,9 +705,9 @@ object frmMain: TfrmMain
|
|||||||
Text = 'Real'
|
Text = 'Real'
|
||||||
end
|
end
|
||||||
object cbbTranspMode: TComboBox
|
object cbbTranspMode: TComboBox
|
||||||
Left = 92
|
Left = 162
|
||||||
Height = 21
|
Height = 21
|
||||||
Top = 1
|
Top = 2
|
||||||
Width = 136
|
Width = 136
|
||||||
Align = alLeft
|
Align = alLeft
|
||||||
BorderSpacing.Around = 1
|
BorderSpacing.Around = 1
|
||||||
@@ -762,9 +726,9 @@ object frmMain: TfrmMain
|
|||||||
Text = 'Full transparence'
|
Text = 'Full transparence'
|
||||||
end
|
end
|
||||||
object cbbCLUT: TComboBox
|
object cbbCLUT: TComboBox
|
||||||
Left = 357
|
Left = 356
|
||||||
Height = 21
|
Height = 21
|
||||||
Top = 1
|
Top = 2
|
||||||
Width = 109
|
Width = 109
|
||||||
Align = alRight
|
Align = alRight
|
||||||
BorderSpacing.Around = 1
|
BorderSpacing.Around = 1
|
||||||
@@ -775,10 +739,49 @@ object frmMain: TfrmMain
|
|||||||
TabOrder = 3
|
TabOrder = 3
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
object pnlClut: TPanel
|
||||||
|
Left = 1
|
||||||
|
Height = 116
|
||||||
|
Top = 352
|
||||||
|
Width = 520
|
||||||
|
Align = alBottom
|
||||||
|
BevelOuter = bvLowered
|
||||||
|
ClientHeight = 116
|
||||||
|
ClientWidth = 520
|
||||||
|
Color = clBtnFace
|
||||||
|
ParentColor = False
|
||||||
|
TabOrder = 1
|
||||||
|
Visible = False
|
||||||
|
object grdClut: TDrawGrid
|
||||||
|
Left = 1
|
||||||
|
Height = 114
|
||||||
|
Top = 1
|
||||||
|
Width = 518
|
||||||
|
Align = alClient
|
||||||
|
AutoEdit = False
|
||||||
|
ColCount = 1
|
||||||
|
DefaultColWidth = 14
|
||||||
|
DefaultRowHeight = 14
|
||||||
|
Enabled = False
|
||||||
|
ExtendedSelect = False
|
||||||
|
FixedCols = 0
|
||||||
|
FixedRows = 0
|
||||||
|
Options = [goFixedVertLine, goFixedHorzLine, goDrawFocusSelected]
|
||||||
|
RowCount = 1
|
||||||
|
ScrollBars = ssAutoVertical
|
||||||
|
TabOrder = 0
|
||||||
|
TitleFont.Color = clWindowText
|
||||||
|
TitleFont.Height = -11
|
||||||
|
TitleFont.Name = 'Tahoma'
|
||||||
|
UseXORFeatures = True
|
||||||
|
OnDblClick = grdClutDblClick
|
||||||
|
OnDrawCell = grdClutDrawCell
|
||||||
|
end
|
||||||
|
end
|
||||||
object imgTim: TImage
|
object imgTim: TImage
|
||||||
Left = 1
|
Left = 1
|
||||||
Height = 316
|
Height = 351
|
||||||
Top = 4
|
Top = 1
|
||||||
Width = 520
|
Width = 520
|
||||||
AntialiasingMode = amOff
|
AntialiasingMode = amOff
|
||||||
Align = alClient
|
Align = alClient
|
||||||
@@ -825,7 +828,7 @@ object frmMain: TfrmMain
|
|||||||
Title = 'Please, select File...'
|
Title = 'Please, select File...'
|
||||||
DefaultExt = '.bin'
|
DefaultExt = '.bin'
|
||||||
Filter = 'All Files (*.*)|*.*'
|
Filter = 'All Files (*.*)|*.*'
|
||||||
Options = [ofHideReadOnly, ofNoChangeDir, ofAllowMultiSelect, ofFileMustExist, ofNoNetworkButton, ofEnableSizing, ofForceShowHidden]
|
Options = [ofHideReadOnly, ofNoChangeDir, ofAllowMultiSelect, ofNoNetworkButton, ofEnableSizing, ofForceShowHidden]
|
||||||
left = 664
|
left = 664
|
||||||
top = 448
|
top = 448
|
||||||
end
|
end
|
||||||
@@ -1076,7 +1079,7 @@ object frmMain: TfrmMain
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
object dlgSelectDir: TSelectDirectoryDialog
|
object dlgSelectDir: TSelectDirectoryDialog
|
||||||
Options = [ofNoChangeDir, ofPathMustExist, ofNoNetworkButton, ofEnableSizing, ofViewDetail]
|
Options = [ofNoChangeDir, ofNoNetworkButton, ofEnableSizing, ofViewDetail]
|
||||||
left = 449
|
left = 449
|
||||||
top = 450
|
top = 450
|
||||||
end
|
end
|
||||||
|
|||||||
89
umain.pas
89
umain.pas
@@ -10,6 +10,8 @@ uses
|
|||||||
|
|
||||||
uscanresult, uscanthread, usettings, utim, udrawtim;
|
uscanresult, uscanthread, usettings, utim, udrawtim;
|
||||||
|
|
||||||
|
{$INCLUDE todos.inc}
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
{ TfrmMain }
|
{ TfrmMain }
|
||||||
@@ -49,7 +51,7 @@ type
|
|||||||
dlgSavePNG: TSavePictureDialog;
|
dlgSavePNG: TSavePictureDialog;
|
||||||
dlgSaveTIM: TSaveDialog;
|
dlgSaveTIM: TSaveDialog;
|
||||||
ExtractTIM1: TMenuItem;
|
ExtractTIM1: TMenuItem;
|
||||||
grdCurrClut: TDrawGrid;
|
grdClut: TDrawGrid;
|
||||||
imgTim: TImage;
|
imgTim: TImage;
|
||||||
lblStatus: TLabel;
|
lblStatus: TLabel;
|
||||||
lvList: TListView;
|
lvList: TListView;
|
||||||
@@ -83,6 +85,7 @@ type
|
|||||||
N1: TMenuItem;
|
N1: TMenuItem;
|
||||||
N3: TMenuItem;
|
N3: TMenuItem;
|
||||||
N5: TMenuItem;
|
N5: TMenuItem;
|
||||||
|
pnlClut: TPanel;
|
||||||
pbProgress: TProgressBar;
|
pbProgress: TProgressBar;
|
||||||
pnlExtractAll: TPanel;
|
pnlExtractAll: TPanel;
|
||||||
pnlImage: TPanel;
|
pnlImage: TPanel;
|
||||||
@@ -95,7 +98,6 @@ type
|
|||||||
ReplaceTIM1: TMenuItem;
|
ReplaceTIM1: TMenuItem;
|
||||||
SaveasPNG1: TMenuItem;
|
SaveasPNG1: TMenuItem;
|
||||||
dlgSelectDir: TSelectDirectoryDialog;
|
dlgSelectDir: TSelectDirectoryDialog;
|
||||||
splImageClut: TSplitter;
|
|
||||||
splMain: TSplitter;
|
splMain: TSplitter;
|
||||||
sbMain: TStatusBar;
|
sbMain: TStatusBar;
|
||||||
procedure actAboutExecute(Sender: TObject);
|
procedure actAboutExecute(Sender: TObject);
|
||||||
@@ -124,8 +126,8 @@ type
|
|||||||
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormDropFiles(Sender: TObject; const FileNames: array of string);
|
procedure FormDropFiles(Sender: TObject; const FileNames: array of string);
|
||||||
procedure grdCurrClutDblClick(Sender: TObject);
|
procedure grdClutDblClick(Sender: TObject);
|
||||||
procedure grdCurrClutDrawCell(Sender: TObject; aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState);
|
procedure grdClutDrawCell(Sender: TObject; aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState);
|
||||||
procedure lvListData(Sender: TObject; Item: TListItem);
|
procedure lvListData(Sender: TObject; Item: TListItem);
|
||||||
procedure lvListSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
|
procedure lvListSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
|
||||||
private
|
private
|
||||||
@@ -165,6 +167,7 @@ type
|
|||||||
function FormatPngName(const FileName: string; ListIdx_, BitMode, Clut: Integer): string;
|
function FormatPngName(const FileName: string; ListIdx_, BitMode, Clut: Integer): string;
|
||||||
procedure ShowTim;
|
procedure ShowTim;
|
||||||
procedure ShowTimInfo(ShowInfo: Boolean);
|
procedure ShowTimInfo(ShowInfo: Boolean);
|
||||||
|
procedure RemoveGridSelection;
|
||||||
public
|
public
|
||||||
{ public declarations }
|
{ public declarations }
|
||||||
ScanResults: TScanResultList; //List of finished scan results
|
ScanResults: TScanResultList; //List of finished scan results
|
||||||
@@ -182,6 +185,10 @@ uses ucdimage, ucpucount, lcltype, ucommon, LCLIntf
|
|||||||
{$IFDEF windows}
|
{$IFDEF windows}
|
||||||
,registry
|
,registry
|
||||||
{$IFEND}
|
{$IFEND}
|
||||||
|
|
||||||
|
{$IFDEF Linux}
|
||||||
|
,BaseUnix
|
||||||
|
{$IFEND}
|
||||||
;
|
;
|
||||||
|
|
||||||
{$R *.lfm}
|
{$R *.lfm}
|
||||||
@@ -229,11 +236,12 @@ begin
|
|||||||
if not dlgSavePNG.Execute then Exit;
|
if not dlgSavePNG.Execute then Exit;
|
||||||
|
|
||||||
Surf^.SaveToFile(UTF8ToSys(dlgSavePNG.FileName));
|
Surf^.SaveToFile(UTF8ToSys(dlgSavePNG.FileName));
|
||||||
|
{$IFDEF Linux}FpChmod(dlgSavePNG.FileName, &777){$IFEND}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmMain.btnShowClutClick(Sender: TObject);
|
procedure TfrmMain.btnShowClutClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
grdCurrClut.Visible := not grdCurrClut.Visible;
|
pnlClut.Visible := not pnlClut.Visible;
|
||||||
DrawSelClut;
|
DrawSelClut;
|
||||||
actReturnFocus.Execute;
|
actReturnFocus.Execute;
|
||||||
end;
|
end;
|
||||||
@@ -262,7 +270,7 @@ end;
|
|||||||
|
|
||||||
procedure TfrmMain.actAboutExecute(Sender: TObject);
|
procedure TfrmMain.actAboutExecute(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
Application.MessageBox(cProgramName + #13 + 'Some "about strings" should be here!:)', 'About', MB_OK + MB_ICONINFORMATION);
|
Application.MessageBox(cProgramName + #13#10#13#10 + 'Some "about strings" should be here!:)', 'About', MB_OK + MB_ICONINFORMATION);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmMain.actAssocTimsExecute(Sender: TObject);
|
procedure TfrmMain.actAssocTimsExecute(Sender: TObject);
|
||||||
@@ -380,7 +388,9 @@ begin
|
|||||||
TIM := LoadTimFromFile(FName, OFFSET, IsImage, SIZE);
|
TIM := LoadTimFromFile(FName, OFFSET, IsImage, SIZE);
|
||||||
TimToPNG(TIM, cbbCLUT.ItemIndex, Surf_, cbbTranspMode.ItemIndex);
|
TimToPNG(TIM, cbbCLUT.ItemIndex, Surf_, cbbTranspMode.ItemIndex);
|
||||||
|
|
||||||
Surf_^.SaveToFile(UTF8ToSys(Path + FormatPngName(FName, I - 1, BIT_MODE, 0)));
|
Path := Path + FormatPngName(FName, I - 1, BIT_MODE, 0);
|
||||||
|
Surf_^.SaveToFile(UTF8ToSys(Path));
|
||||||
|
{$IFDEF Linux}FpChmod(Path, &777){$IFEND}
|
||||||
Surf_^.Free;
|
Surf_^.Free;
|
||||||
Surf_^ := nil;
|
Surf_^ := nil;
|
||||||
|
|
||||||
@@ -404,6 +414,7 @@ begin
|
|||||||
|
|
||||||
TIM := SelectedTim;
|
TIM := SelectedTim;
|
||||||
SaveTimToFile(dlgSaveTIM.FileName, TIM);
|
SaveTimToFile(dlgSaveTIM.FileName, TIM);
|
||||||
|
{$IFDEF Linux}FpChmod(dlgSaveTIM.FileName, &777){$IFEND}
|
||||||
FreeTIM(TIM);
|
FreeTIM(TIM);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -435,7 +446,9 @@ begin
|
|||||||
CreateDirUTF8(Path);
|
CreateDirUTF8(Path);
|
||||||
|
|
||||||
TIM := LoadTimFromFile(FName, OFFSET, IsImage, SIZE);
|
TIM := LoadTimFromFile(FName, OFFSET, IsImage, SIZE);
|
||||||
SaveTimToFile(Path + FormatTimName(FName, I - 1, BIT_MODE), TIM);
|
Path := Path + FormatTimName(FName, I - 1, BIT_MODE);
|
||||||
|
SaveTimToFile(Path, TIM);
|
||||||
|
{$IFDEF Linux}FpChmod(Path, &777){$IFEND}
|
||||||
FreeTIM(TIM);
|
FreeTIM(TIM);
|
||||||
|
|
||||||
pbProgress.Position := I;
|
pbProgress.Position := I;
|
||||||
@@ -501,24 +514,15 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmMain.FormCreate(Sender: TObject);
|
procedure TfrmMain.FormCreate(Sender: TObject);
|
||||||
var
|
|
||||||
hGridRect: TGridRect;
|
|
||||||
begin
|
begin
|
||||||
{$IFnDEF Windows}mnOptions.Enabled := False;{$IFEND}
|
|
||||||
|
|
||||||
Settings := TSettings.Create(ExtractFilePath(ParamStrUTF8(0)));
|
Settings := TSettings.Create(ExtractFilePath(ParamStrUTF8(0)));
|
||||||
|
|
||||||
actStretch.Checked := Settings.StretchMode;
|
actStretch.Checked := Settings.StretchMode;
|
||||||
cbbTranspMode.ItemIndex := Settings.TranspMode;
|
cbbTranspMode.ItemIndex := Settings.TranspMode;
|
||||||
LastDir := Settings.LastDir;
|
LastDir := Settings.LastDir;
|
||||||
|
cbbBitMode.ItemIndex := Settings.BitMode;
|
||||||
pnlImage.Color := Settings.BackColor;
|
pnlImage.Color := Settings.BackColor;
|
||||||
|
|
||||||
hGridRect.Top := -1;
|
|
||||||
hGridRect.Left := -1;
|
|
||||||
hGridRect.Right := -1;
|
|
||||||
hGridRect.Bottom := -1;
|
|
||||||
grdCurrClut.Selection := hGridRect;
|
|
||||||
|
|
||||||
ScanThreads := TScanThreadList.Create(False); //False - to able scan thread remove itself from this list
|
ScanThreads := TScanThreadList.Create(False); //False - to able scan thread remove itself from this list
|
||||||
ScanResults := TScanResultList.Create(False);
|
ScanResults := TScanResultList.Create(False);
|
||||||
StartedScans := 0;
|
StartedScans := 0;
|
||||||
@@ -543,7 +547,7 @@ begin
|
|||||||
ScanPath(FileNames[i - 1]);
|
ScanPath(FileNames[i - 1]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmMain.grdCurrClutDblClick(Sender: TObject);
|
procedure TfrmMain.grdClutDblClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
TIM: PTIM;
|
TIM: PTIM;
|
||||||
I, SELECTED_CELL, W, DIALOG_COLOR, CLUT_NUM: Integer;
|
I, SELECTED_CELL, W, DIALOG_COLOR, CLUT_NUM: Integer;
|
||||||
@@ -553,7 +557,7 @@ begin
|
|||||||
TIM := SelectedTim;
|
TIM := SelectedTim;
|
||||||
if TIM = nil then Exit;
|
if TIM = nil then Exit;
|
||||||
|
|
||||||
SELECTED_CELL := grdCurrCLUT.Row * grdCurrCLUT.ColCount + grdCurrCLUT.Col;
|
SELECTED_CELL := grdClut.Row * grdClut.ColCount + grdClut.Col;
|
||||||
W := GetTimColorsCount(TIM);
|
W := GetTimColorsCount(TIM);
|
||||||
|
|
||||||
if SELECTED_CELL >= W then
|
if SELECTED_CELL >= W then
|
||||||
@@ -603,7 +607,7 @@ begin
|
|||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmMain.grdCurrClutDrawCell(Sender: TObject; aCol, aRow: Integer;
|
procedure TfrmMain.grdClutDrawCell(Sender: TObject; aCol, aRow: Integer;
|
||||||
aRect: TRect; aState: TGridDrawState);
|
aRect: TRect; aState: TGridDrawState);
|
||||||
var
|
var
|
||||||
TIM: PTIM;
|
TIM: PTIM;
|
||||||
@@ -617,7 +621,7 @@ begin
|
|||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
DrawClutCell(TIM, cbbCLUT.ItemIndex, @grdCurrCLUT, ACol, ARow);
|
DrawClutCell(TIM, cbbCLUT.ItemIndex, @grdClut, ACol, ARow);
|
||||||
|
|
||||||
FreeTIM(TIM);
|
FreeTIM(TIM);
|
||||||
end;
|
end;
|
||||||
@@ -763,6 +767,8 @@ end;
|
|||||||
|
|
||||||
procedure TfrmMain.CheckButtonsAndMainMenu;
|
procedure TfrmMain.CheckButtonsAndMainMenu;
|
||||||
begin
|
begin
|
||||||
|
RemoveGridSelection;
|
||||||
|
|
||||||
cbbFiles.Enabled := (cbbFiles.Items.Count <> 0);
|
cbbFiles.Enabled := (cbbFiles.Items.Count <> 0);
|
||||||
|
|
||||||
pnlList.Enabled := cbbFiles.Enabled;
|
pnlList.Enabled := cbbFiles.Enabled;
|
||||||
@@ -827,7 +833,6 @@ begin
|
|||||||
if TIM = nil then Exit;
|
if TIM = nil then Exit;
|
||||||
|
|
||||||
CLUTS := GetTIMClutsCount(TIM);
|
CLUTS := GetTIMClutsCount(TIM);
|
||||||
//cbbCLUT.Items.Clear;
|
|
||||||
|
|
||||||
cbbCLUT.Items.BeginUpdate;
|
cbbCLUT.Items.BeginUpdate;
|
||||||
for I := 0 to cbbCLUT.Items.Count -1 do
|
for I := 0 to cbbCLUT.Items.Count -1 do
|
||||||
@@ -854,9 +859,11 @@ begin
|
|||||||
|
|
||||||
case cbbBitMode.ItemIndex of
|
case cbbBitMode.ItemIndex of
|
||||||
1: mode := cTIM4C;
|
1: mode := cTIM4C;
|
||||||
2: mode := cTIM8C;
|
2: mode := cTIM4NC;
|
||||||
3: mode := cTIM16NC;
|
3: mode := cTIM8C;
|
||||||
4: mode := cTIM24NC;
|
4: mode := cTIM8NC;
|
||||||
|
5: mode := cTIM16NC;
|
||||||
|
6: mode := cTIM24NC;
|
||||||
else
|
else
|
||||||
mode := $FF;
|
mode := $FF;
|
||||||
end;
|
end;
|
||||||
@@ -878,26 +885,26 @@ procedure TfrmMain.DrawSelClut;
|
|||||||
var
|
var
|
||||||
TIM: PTIM;
|
TIM: PTIM;
|
||||||
begin
|
begin
|
||||||
if not grdCurrClut.Visible then Exit;
|
if not pnlClut.Visible then Exit;
|
||||||
|
|
||||||
ClearGrid(@grdCurrCLUT);
|
ClearGrid(@grdClut);
|
||||||
|
|
||||||
TIM := SelectedTim;
|
TIM := SelectedTim;
|
||||||
if TIM = nil then
|
if TIM = nil then
|
||||||
begin
|
begin
|
||||||
grdCurrCLUT.ColCount := 1;
|
grdClut.ColCount := 1;
|
||||||
grdCurrCLUT.RowCount := 1;
|
grdClut.RowCount := 1;
|
||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
grdCurrCLUT.Enabled := TIMHasCLUT(TIM);
|
grdClut.Enabled := TIMHasCLUT(TIM);
|
||||||
|
|
||||||
if TIMHasCLUT(TIM) then
|
if TIMHasCLUT(TIM) then
|
||||||
DrawCLUT(TIM, cbbCLUT.ItemIndex, @grdCurrCLUT)
|
DrawCLUT(TIM, cbbCLUT.ItemIndex, @grdClut)
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
grdCurrCLUT.ColCount := 1;
|
grdClut.ColCount := 1;
|
||||||
grdCurrCLUT.RowCount := 1;
|
grdClut.RowCount := 1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
FreeTIM(TIM);
|
FreeTIM(TIM);
|
||||||
@@ -927,7 +934,8 @@ begin
|
|||||||
if (lvList.Selected = nil) then Exit;
|
if (lvList.Selected = nil) then Exit;
|
||||||
if (lvList.Items.Count = 0) then Exit;
|
if (lvList.Items.Count = 0) then Exit;
|
||||||
|
|
||||||
cbbBitMode.ItemIndex := 0;
|
{ TODO : Reset bitmode or not? }
|
||||||
|
//cbbBitMode.ItemIndex := 0;
|
||||||
|
|
||||||
UpdateCLUTInfo;
|
UpdateCLUTInfo;
|
||||||
DrawSelTim;
|
DrawSelTim;
|
||||||
@@ -981,5 +989,16 @@ begin
|
|||||||
FreeTIM(TIM);
|
FreeTIM(TIM);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TfrmMain.RemoveGridSelection;
|
||||||
|
var
|
||||||
|
hGrid: TGridRect;
|
||||||
|
begin
|
||||||
|
hGrid.Top := -1;
|
||||||
|
hGrid.Left := -1;
|
||||||
|
hGrid.Right := -1;
|
||||||
|
hGrid.Bottom := -1;
|
||||||
|
grdClut.Selection := hGrid;
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ type
|
|||||||
function FLastDirRead(): string;
|
function FLastDirRead(): string;
|
||||||
procedure FBackColorWrite(Color: TColor);
|
procedure FBackColorWrite(Color: TColor);
|
||||||
function FBackColorRead(): TColor;
|
function FBackColorRead(): TColor;
|
||||||
|
procedure FBitModeWrite(Mode: Integer);
|
||||||
|
function FBitModeRead(): Integer;
|
||||||
public
|
public
|
||||||
constructor Create(const DirPath: string);
|
constructor Create(const DirPath: string);
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
@@ -29,6 +31,7 @@ type
|
|||||||
property StretchMode: Boolean read FStretchModeRead write FStretchModeWrite;
|
property StretchMode: Boolean read FStretchModeRead write FStretchModeWrite;
|
||||||
property LastDir: string read FLastDirRead write FLastDirWrite;
|
property LastDir: string read FLastDirRead write FLastDirWrite;
|
||||||
property BackColor: TColor read FBackColorRead write FBackColorWrite;
|
property BackColor: TColor read FBackColorRead write FBackColorWrite;
|
||||||
|
property BitMode: Integer read FBitModeRead write FBitModeWrite;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@@ -79,6 +82,16 @@ begin
|
|||||||
Result := FIniFile.ReadInteger(sMain, 'BackColor', clBtnFace);
|
Result := FIniFile.ReadInteger(sMain, 'BackColor', clBtnFace);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSettings.FBitModeWrite(Mode: Integer);
|
||||||
|
begin
|
||||||
|
FIniFile.WriteInteger(sMain, 'BitMode', Mode);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TSettings.FBitModeRead: Integer;
|
||||||
|
begin
|
||||||
|
Result := FIniFile.ReadInteger(sMain, 'BitMode', 0);
|
||||||
|
end;
|
||||||
|
|
||||||
constructor TSettings.Create(const DirPath: string);
|
constructor TSettings.Create(const DirPath: string);
|
||||||
begin
|
begin
|
||||||
inherited Create;
|
inherited Create;
|
||||||
|
|||||||
Reference in New Issue
Block a user