• R/O
  • SSH
  • HTTPS

splnch: Commit


Commit MetaInfo

Revision84 (tree)
Time2007-07-19 17:05:52
Authorsawasige

Log Message

ボタンのリンク先とユーザーデータフォルダを、相対パスでも動作するように修正。

Change Summary

Incremental Difference

--- SpLnch/trunc/SetBtn.pas (revision 83)
+++ SpLnch/trunc/SetBtn.pas (revision 84)
@@ -878,7 +878,11 @@
878878 function OpenNormalButton(AWnd: HWND; AButton: TNormalButton): Boolean;
879879 var
880880 ExecInfo: TShellExecuteInfo;
881+
881882 begin
883+ // カレントディレクトリ移動
884+ ChDir(ExtractFilePath(ParamStr(0)));
885+
882886 with ExecInfo do
883887 begin
884888 cbSize := SizeOf(TShellExecuteInfo);
@@ -886,9 +890,10 @@
886890 if AButton.ItemIDList = nil then
887891 begin
888892 fMask := SEE_MASK_DOENVSUBST;
889- lpFile := PChar(AButton.FileName);
893+ // 絶対パス取得
894+ lpFile := PChar(ExpandUNCFileName(AButton.FileName));
890895 lpParameters := PChar(AButton.Option);
891- lpDirectory := PChar(AButton.Folder);
896+ lpDirectory := PChar(ExpandUNCFileName(AButton.Folder));
892897 lpIDList := nil;
893898 end
894899 else
@@ -929,6 +934,10 @@
929934 FilePart: PChar;
930935 begin
931936 Result := True;
937+
938+ // カレントディレクトリ移動
939+ ChDir(ExtractFilePath(ParamStr(0)));
940+
932941 NormalButton := TNormalButton.Create;
933942 try
934943
--- SpLnch/trunc/Option.pas (revision 83)
+++ SpLnch/trunc/Option.pas (revision 84)
@@ -192,8 +192,12 @@
192192 // データフォルダ
193193 Ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
194194 try
195+ // カレントディレクトリ移動
196+ ChDir(ExtractFilePath(ParamStr(0)));
195197 chkSettingForAllUser.Checked := Ini.ReadBool(IS_APPGENERAL, 'SettingForAllUser', False);
196198 edtUserFolder.Text := Ini.ReadString(IS_USERS, UserName, '');
199+ edtUserFolder.Text := ExpandUNCFileName(edtUserFolder.Text);
200+
197201 if edtUserFolder.Text = '' then
198202 btnUserFolderReset.Click;
199203 finally
--- SpLnch/trunc/BtnPro.pas (revision 83)
+++ SpLnch/trunc/BtnPro.pas (revision 84)
@@ -47,6 +47,7 @@
4747 Label6: TLabel;
4848 imgPluginIcon: TImage;
4949 imgNormalIcon: TImage;
50+ btnNormalRelativePath: TButton;
5051 procedure FormCreate(Sender: TObject);
5152 procedure btnOkClick(Sender: TObject);
5253 procedure btnCancelClick(Sender: TObject);
@@ -64,6 +65,7 @@
6465 procedure btnNormalIconClick(Sender: TObject);
6566 procedure FormDestroy(Sender: TObject);
6667 procedure FormClose(Sender: TObject; var Action: TCloseAction);
68+ procedure btnNormalRelativePathClick(Sender: TObject);
6769 private
6870 FOnWindowActivate: TNotifyEvent;
6971 FOnWindowDeactivate: TNotifyEvent;
@@ -420,6 +422,9 @@
420422 begin
421423 tmNormalIconChange.Enabled := False;
422424
425+ // カレントディレクトリ移動
426+ ChDir(ExtractFilePath(ParamStr(0)));
427+
423428 if FNormalIconFile <> '' then
424429 Ret := GetIconHandle(PChar(FNormalIconFile), ftIconPath, FNormalIconIndex, LIcon, SIcon)
425430 else if FNormalItemIDList <> nil then
@@ -461,6 +466,7 @@
461466 edtNormalFileName.ParentColor := True;
462467 edtNormalFileName.Enabled := False;
463468 edtNormalFileName.Text := GetItemIDName(DesktopFolder, Value, SHGDN_NORMAL);
469+ btnNormalRelativePath.Enabled := False;
464470 edtNormalOption.ParentColor := True;
465471 edtNormalOption.Enabled := False;
466472 edtNormalOption.Text := '';
@@ -475,6 +481,7 @@
475481 begin
476482 edtNormalFileName.Color := clWindow;
477483 edtNormalFileName.Enabled := True;
484+ btnNormalRelativePath.Enabled := True;
478485 edtNormalOption.Color := clWindow;
479486 edtNormalOption.Enabled := True;
480487 edtNormalFolder.Color := clWindow;
@@ -646,6 +653,16 @@
646653 end;
647654 end;
648655
656+// 相対パスに変換
657+procedure TdlgBtnProperty.btnNormalRelativePathClick(Sender: TObject);
658+begin
659+ if btnNormalRelativePath.Enabled then
660+ begin
661+ edtNormalFileName.Text := ExtractRelativePath(ExtractFilePath(ParamStr(0)), edtNormalFileName.Text);
662+ edtNormalFolder.Text := '';
663+ end;
664+end;
665+
649666 // プラグインの情報
650667 procedure TdlgBtnProperty.btnPluginInfoClick(Sender: TObject);
651668 var
--- SpLnch/trunc/SetInit.pas (revision 83)
+++ SpLnch/trunc/SetInit.pas (revision 84)
@@ -54,6 +54,7 @@
5454 FindHandle: THandle;
5555 Win32FindData: TWin32FindData;
5656 UnknownFileExist: Boolean;
57+ NewUserFolder: string;
5758 begin
5859 Result := True;
5960
@@ -80,11 +81,16 @@
8081 Ini.Free;
8182 end;
8283
84+ // カレントディレクトリ移動
85+ ChDir(ExtractFilePath(ParamStr(0)));
86+
8387 // ユーザー設定ファイル
8488 if UserFolder = '' then
8589 UserInit := ''
8690 else
8791 begin
92+ // 絶対パス取得
93+ UserFolder := ExpandUNCFileName(UserFolder);
8894 if not IsPathDelimiter(UserFolder, Length(UserFolder)) then
8995 UserFolder := UserFolder + '\';
9096 UserInit := UserFolder + FileNameIni;
@@ -114,6 +120,9 @@
114120 begin
115121 UserFolder := dlgInitFolder.edtInitFolder.Text;
116122
123+ // カレントディレクトリ移動
124+ ChDir(ExtractFilePath(ParamStr(0)));
125+
117126 if not IsPathDelimiter(UserFolder, Length(UserFolder)) then
118127 UserFolder := UserFolder + '\';
119128 UserInit := UserFolder + FileNameIni;
@@ -193,11 +202,16 @@
193202
194203 if Result then
195204 begin
205+ // カレントディレクトリにある場合は相対パスに置き換え
206+ NewUserFolder := UserFolder;
207+ if Pos(ExtractFilePath(ParamStr(0)), UserFolder) = 1 then
208+ NewUserFolder := ExtractRelativePath(ExtractFilePath(ParamStr(0)), UserFolder);
209+
196210 // ユーザーフォルダを保存
197211 Ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
198212 try
199213 try
200- Ini.WriteString(IS_USERS, UserName, UserFolder);
214+ Ini.WriteString(IS_USERS, UserName, NewUserFolder);
201215 except
202216 Result := False;
203217 Application.MessageBox(PChar('設定ファイル "' + Ini.FileName + '" に書き込めません。'),
--- SpLnch/trunc/VerCheck.pas (revision 83)
+++ SpLnch/trunc/VerCheck.pas (revision 84)
@@ -108,7 +108,6 @@
108108 All: IHtmlElementCollection;
109109 Item: IHtmlElement;
110110 SLCurrentVersion: string;
111- CurrentVersion: string;
112111 TargetVersion: string;
113112 NewVersion: string;
114113 NewDate: string;
Show on old repository browser