OSDN Git Service

サウンドの設定ファイルの指定で、デフォルトを相対パスに変更。
authorh677 <h677>
Sat, 28 Mar 2009 05:59:56 +0000 (05:59 +0000)
committerh677 <h677>
Sat, 28 Mar 2009 05:59:56 +0000 (05:59 +0000)
実行ディレクトリより下のファイルを指定した場合、相対パスで保存するように変更。

Option.pas
Setting.pas

index 64c637f..9e13e50 100644 (file)
@@ -1321,6 +1321,14 @@ begin
        sndPlaySound(nil, SND_ASYNC);
        if OpenDialog.Execute then begin
                SoundFileEdit.Text := OpenDialog.FileName;
+        // \83A\83v\83\8a\94z\89º\82Ì\83t\83@\83C\83\8b\82Ì\8fê\8d\87\91\8a\91Î\83p\83X\82É\95Ï\8a·\82·\82é\81B
+        if (AnsiPos(GikoSys.Setting.GetAppDir,SoundFileEdit.Text) = 1) then begin
+            // .\ \82ª\82Â\82©\82È\82¢\82Ì\82Å\81A.\\82ð\92Ç\89Á
+            SoundFileEdit.Text := '.\' + ExtractRelativePath(
+                                      GikoSys.Setting.GetAppDir,
+                                      SoundFileEdit.Text);
+
+        end;
        end;
 end;
 
@@ -1328,10 +1336,8 @@ procedure TOptionDialog.SoundPlayButtonClick(Sender: TObject);
 var
     s : String;
 begin
-    s := SoundFileEdit.Text;
-    if (AnsiPos('.\', s) = 1) then begin
-        s := GikoSys.Setting.GetAppDir + Copy(s, 2, Length(s));
-    end;
+    SetCurrentDir(GikoSys.Setting.GetAppDir);
+    s := ExpandFileName(SoundFileEdit.Text);
        if not FileExists(s) then begin
                MsgBox(Handle, '\91\8dÝ\82µ\82È\82¢\83t\83@\83C\83\8b\82Å\82·', '\83G\83\89\81[', MB_ICONSTOP or MB_OK);
                SoundFileEdit.Text := '';
@@ -1357,7 +1363,8 @@ begin
        Item := SoundListView.Selected;
        if Item = nil then Exit;
 
-       if FileExists(SoundFileEdit.Text) then
+    SetCurrentDir(GikoSys.Setting.GetAppDir);
+       if FileExists(ExpandFileName(SoundFileEdit.Text)) then
                Item.SubItems[0] := SoundFileEdit.Text;
        if Trim(SoundFileEdit.Text) = '' then
                Item.SubItems[0] := '';
index 043fb73..b35d36b 100644 (file)
@@ -1224,18 +1224,13 @@ begin
                        for i := 0 to GetSoundCount - 1 do begin
                                SoundFileName[i] := ini.ReadString('Sound', SoundName[i], '');
                 // \91\8a\91Î\8eQ\8fÆ\91Î\8dô
-                s := SoundFileName[i];
-                if (AnsiPos('.\', SoundFileName[i]) = 1) then begin
-                    s := GetAppDir
-                            + Copy(SoundFileName[i], 2, Length(SoundFileName[i]));
-                end;
                 // \83t\83@\83C\83\8b\82Ì\91\8dÝ\83`\83F\83b\83N
-                if not FileExists(SoundFileName[i]) then begin
+                if not FileExists(ExpandFileName(SoundFileName[i])) then begin
                     SoundFileName[i] := '';
                 end;
                        end;
                end else begin
-                       s := GetAppDir + '\sound\';
+                       s := 'Sound\';
                        SoundFileName[0] := s + '\8eæ\93¾\90¬\8c÷.wav';
                        SoundFileName[1] := s + '\8eæ\93¾\90¬\8c÷(\8d·\95ª).wav';
                        SoundFileName[2] := s + '\96¢\8dX\90V.wav';
@@ -1894,12 +1889,8 @@ var
 begin
        for i := 0 to GetSoundCount - 1 do begin
                if SoundName[i] = Name then begin
-                       Result := SoundFileName[i];
-            // \91\8a\91Î\83p\83X\91Î\8dô
-            if (AnsiPos('.\', Result) = 1) then begin
-                Result := GetAppDir
-                    + Copy(Result, 2, Length(Result));
-            end;
+            SysUtils.SetCurrentDir(GetAppDir);
+                       Result := ExpandFileName(SoundFileName[i]);
                        Exit;
                end;
        end;