Fixed file associations with russian paths. Stable.

This commit is contained in:
meffi@lab313.ru
2014-05-07 13:47:51 +00:00
parent 77940805bc
commit 4ed4dc594e
7 changed files with 285 additions and 277 deletions

View File

@@ -23,8 +23,7 @@
<UseVersionInfo Value="True"/>
<AutoIncrementBuild Value="True"/>
<MajorVersionNr Value="1"/>
<RevisionNr Value="80"/>
<BuildNr Value="10"/>
<RevisionNr Value="84"/>
<StringTable CompanyName="Lab 313" FileDescription="The best TIMs tool ever!:)" ProductVersion=""/>
</VersionInfo>
<BuildModes Count="6">

View File

@@ -23,8 +23,8 @@
<UnitName Value="umain"/>
<EditorIndex Value="0"/>
<WindowIndex Value="0"/>
<TopLine Value="128"/>
<CursorPos X="83" Y="136"/>
<TopLine Value="188"/>
<CursorPos X="40" Y="199"/>
<UsageCount Value="816"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@@ -52,7 +52,7 @@
<EditorIndex Value="3"/>
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="20" Y="35"/>
<CursorPos X="47" Y="13"/>
<UsageCount Value="816"/>
<Loaded Value="True"/>
</Unit4>
@@ -84,8 +84,8 @@
<UnitName Value="usettings"/>
<EditorIndex Value="9"/>
<WindowIndex Value="0"/>
<TopLine Value="83"/>
<CursorPos X="75" Y="99"/>
<TopLine Value="41"/>
<CursorPos X="44" Y="52"/>
<UsageCount Value="816"/>
<Loaded Value="True"/>
</Unit7>

Binary file not shown.

View File

@@ -3,7 +3,7 @@ unit ucommon;
interface
const
cProgramName = 'Tim2View SVN.r80 by [Lab 313] (for ' +
cProgramName = 'Tim2View SVN.r84 by [Lab 313] (for ' +
{$IFDEF Linux}'Linux' + {$IFEND}
{$IFDEF Darwin}'Mac OS X' + {$IFEND}
{$IFDEF Windows}'Windows' + {$IFEND}

View File

@@ -9,7 +9,7 @@ object frmMain: TfrmMain
VertScrollBar.Range = 344
ActiveControl = pnlList
AllowDropFiles = True
ClientHeight = 643
ClientHeight = 648
ClientWidth = 790
Color = clBtnFace
Font.Color = clWindowText
@@ -498,7 +498,7 @@ object frmMain: TfrmMain
object pnlStatus: TPanel
Left = 0
Height = 30
Top = 613
Top = 618
Width = 790
Align = alBottom
BevelOuter = bvLowered
@@ -538,13 +538,13 @@ object frmMain: TfrmMain
end
object cbbFiles: TComboBox
Left = 0
Height = 28
Height = 21
Top = 0
Width = 790
Align = alTop
DropDownCount = 30
Enabled = False
ItemHeight = 0
ItemHeight = 13
OnChange = actChangeFileExecute
OnCloseUp = actReturnFocusExecute
Style = csDropDownList
@@ -552,33 +552,33 @@ object frmMain: TfrmMain
end
object pnlMain: TPanel
Left = 0
Height = 585
Top = 28
Height = 597
Top = 21
Width = 790
Align = alClient
BevelOuter = bvNone
ClientHeight = 585
ClientHeight = 597
ClientWidth = 790
TabOrder = 1
object splMain: TSplitter
Left = 253
Height = 585
Height = 597
Top = 0
Width = 5
end
object pnlList: TPanel
Left = 0
Height = 585
Height = 597
Top = 0
Width = 253
Align = alLeft
BevelOuter = bvNone
ClientHeight = 585
ClientHeight = 597
ClientWidth = 253
TabOrder = 0
object lvList: TListView
Left = 0
Height = 372
Height = 384
Top = 28
Width = 253
Align = alClient
@@ -586,25 +586,25 @@ object frmMain: TfrmMain
item
AutoSize = True
Caption = '# / 0'
Width = 41
Width = 249
end
item
Alignment = taCenter
AutoSize = True
Caption = 'BPP'
Width = 35
Width = 30
end
item
Alignment = taCenter
AutoSize = True
Caption = 'CLUTs'
Width = 47
Width = 42
end
item
Alignment = taCenter
AutoSize = True
Caption = 'W x H'
Width = 128
Width = 41
end>
ColumnClick = False
GridLines = True
@@ -651,7 +651,7 @@ object frmMain: TfrmMain
object tblTimInfo: TStringGrid
Left = 0
Height = 185
Top = 400
Top = 412
Width = 253
Align = alBottom
AutoEdit = False
@@ -708,32 +708,32 @@ object frmMain: TfrmMain
end
object pnlImage: TPanel
Left = 258
Height = 585
Height = 597
Top = 0
Width = 532
Align = alClient
BevelOuter = bvLowered
ClientHeight = 585
ClientHeight = 597
ClientWidth = 532
Color = clBtnFace
ParentColor = False
TabOrder = 1
object pnlImageOptions: TPanel
Left = 1
Height = 32
Top = 552
Height = 27
Top = 569
Width = 530
Align = alBottom
AutoSize = True
BevelOuter = bvLowered
ClientHeight = 32
ClientHeight = 27
ClientWidth = 530
Color = clBtnFace
ParentColor = False
TabOrder = 0
object btnShowClut: TButton
Left = 476
Height = 28
Height = 23
Top = 2
Width = 52
Align = alRight
@@ -744,12 +744,12 @@ object frmMain: TfrmMain
end
object cbbBitMode: TComboBox
Left = 2
Height = 28
Height = 21
Top = 2
Width = 159
Align = alLeft
BorderSpacing.Around = 1
ItemHeight = 0
ItemHeight = 13
ItemIndex = 0
Items.Strings = (
'Real'
@@ -768,12 +768,12 @@ object frmMain: TfrmMain
end
object cbbTranspMode: TComboBox
Left = 162
Height = 28
Height = 21
Top = 2
Width = 150
Align = alLeft
BorderSpacing.Around = 1
ItemHeight = 0
ItemHeight = 13
ItemIndex = 1
Items.Strings = (
'Full transparence'
@@ -789,13 +789,13 @@ object frmMain: TfrmMain
end
object cbbCLUT: TComboBox
Left = 366
Height = 28
Height = 21
Top = 2
Width = 109
Align = alRight
BorderSpacing.Around = 1
DropDownCount = 16
ItemHeight = 0
ItemHeight = 13
OnChange = actChangeClutIdxExecute
Style = csDropDownList
TabOrder = 3
@@ -804,7 +804,7 @@ object frmMain: TfrmMain
object pnlClut: TPanel
Left = 1
Height = 192
Top = 360
Top = 377
Width = 530
Align = alBottom
BevelOuter = bvLowered
@@ -816,7 +816,7 @@ object frmMain: TfrmMain
Visible = False
object grdClut: TDrawGrid
Left = 1
Height = 125
Height = 138
Top = 1
Width = 528
Align = alClient
@@ -841,8 +841,8 @@ object frmMain: TfrmMain
end
object lblClutHint: TLabel
Left = 1
Height = 65
Top = 126
Height = 52
Top = 139
Width = 528
Align = alBottom
Alignment = taCenter
@@ -854,7 +854,7 @@ object frmMain: TfrmMain
end
object imgTim: TImage
Left = 1
Height = 359
Height = 376
Top = 1
Width = 530
AntialiasingMode = amOff

View File

@@ -193,10 +193,6 @@ implementation
uses ucdimage, ucpucount, lcltype, ucommon, LCLIntf, uexportimport,
FPimage
{$IFDEF windows}
,registry
{$IFEND}
{$IFDEF Linux}
,BaseUnix
{$IFEND}
@@ -320,33 +316,8 @@ begin
end;
procedure TfrmMain.actAssocTimsExecute(Sender: TObject);
{$IFDEF windows}
var
reg: TRegistry;
begin
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey('Software\Classes\.tim', True);
reg.WriteString('', 'TimFile');
reg.CloseKey;
reg.OpenKey('Software\Classes\TimFile', True);
reg.WriteString('', 'Tim File Format');
reg.CloseKey;
reg.OpenKey('Software\Classes\TimFile\DefaultIcon', True);
reg.WriteString('', '"' + ParamStrUTF8(0) +'",0');
reg.CloseKey;
reg.OpenKey('Software\Classes\TimFile\shell\Open\Command', True);
reg.WriteString('', '"' + ParamStrUTF8(0) + '" "%1"');
reg.CloseKey;
finally
reg.Free;
end;
{$ELSE}
begin
{$ENDIF}
Settings.AssociateWithTims;
end;
procedure TfrmMain.actChangeBackColorExecute(Sender: TObject);

View File

@@ -29,6 +29,9 @@ type
public
constructor Create(const DirPath: string);
destructor Destroy; override;
procedure AssociateWithTims;
property TranspMode: Integer read FTranspModeRead write FTranspModeWrite;
property StretchMode: Boolean read FStretchModeRead write FStretchModeWrite;
property LastDir: string read FLastDirRead write FLastDirWrite;
@@ -39,12 +42,47 @@ type
implementation
uses FileUtil;
uses FileUtil
{$IFDEF windows}
,registry
{$IFEND}
;
const sMain = 'main';
{ TSettings }
procedure TSettings.AssociateWithTims;
{$IFDEF windows}
var
reg: TRegistry;
begin
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey('Software\Classes\.tim', True);
reg.WriteString('', 'TimFile');
reg.CloseKey;
reg.OpenKey('Software\Classes\TimFile', True);
reg.WriteString('', 'Tim File Format');
reg.CloseKey;
reg.OpenKey('Software\Classes\TimFile\DefaultIcon', True);
reg.WriteString('', '"' + ParamStr(0) +'",0');
reg.CloseKey;
reg.OpenKey('Software\Classes\TimFile\shell\Open\Command', True);
reg.WriteString('', '"' + ParamStr(0) + '" "%1"');
reg.CloseKey;
finally
reg.Free;
end;
{$ELSE}
begin
{$ENDIF}
end;
procedure TSettings.FTranspModeWrite(Value: Integer);
begin
FIniFile.WriteInteger(sMain, 'TranspMode', Value);
@@ -82,7 +120,7 @@ end;
function TSettings.FBackColorRead: TColor;
begin
Result := FIniFile.ReadInteger(sMain, 'BackColor', clFuchsia);
Result := FIniFile.ReadInteger(sMain, 'BackColor', clBtnFace);
end;
procedure TSettings.FBitModeWrite(Mode: Integer);
@@ -102,7 +140,7 @@ end;
function TSettings.FInfoVisibleRead: Boolean;
begin
Result := FIniFile.ReadBool(sMain, 'InfoVisible', False);
Result := FIniFile.ReadBool(sMain, 'InfoVisible', True);
end;
constructor TSettings.Create(const DirPath: string);