微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Delphi 中更改路径

如何解决在 Delphi 中更改路径

我正在处理一个项目,我需要在 Delphi 中播放文件中的视频。我经常在家和学校工作,我遇到的问题是,在家里,我的 USB 是驱动器“J”,而在学校,我的 USB 是驱动器“D”。

我每次都手动去更改它。 Delphi 有没有办法自动从任何地方获取视频?

每个扇区都有一个用于选择扇区的图像组件。

*注意,我知道我可以在 Delphi 中搜索特定文件的位置,但是我有超过 24 个不同的地方需要播放不同的视频,所以搜索可能是我最后的手段,除非我使用程序并设置每个扇区的常量以区分它们。

目前的代码如下:

procedure TtForm.imgSector1Click(Sender: TObject);
begin
  
    //Variables,this is for initializing them when I create them later.                                                                                                                                             

  //Procedures                                                                                                   
      Sectordeselect; //Procedure to turn all sector borders white                                            

  // Video                                                                                                       
  WindowsMediaPlayer1.Controls.stop;                                                                        
  WindowsMediaPlayer1.URL := 'J:\IT\PAT\phase 2\Videos\Footage1.mp4'; //Where my problem lies             
  WindowsMediaPlayer1.Controls.Play;

  // Sector Info. The memos and Rich edits                                                                                                                                                                       
  redSectorInfo.Lines.Clear;                                                                                                                                                                              
  redSectorInfo.Lines.Add('');                                                                                                                                                             

  // Sector. Highlighting the sector borders surrounding the sector                                                                                                   
  SectorBordr1.Brush.Color := clGreen;                                                                          
  SectorBorder10.Brush.Color := clGreen;                                                                                                                                                                                                               
end;

解决方法

我建议在您的应用程序的 UI 中添加一个 TEdit 控件,以便您指定当前运行该应用程序的机器上文件的基本驱动器/路径。然后,您的代码可以在运行时构造相对于该基本路径的单个文件路径。不要在代码中使用硬编码路径。

然后您可以将该基本路径保存到您创建的新项中的 Windows 注册表中,即 HKEY_CURRENT_USER\Software\MyApp。或者,您可以将路径保存在 Windows 用户配置文件的子文件夹中创建的配置文件(INI、XML、JSON 等)中,例如 %APPDATA%\MyApp。每次运行应用程序时,您的代码都可以在该基本路径中读取。

如果文件存储在 USB 驱动器上,另一种解决方案是在运行时简单地枚举可用驱动器,例如使用 GetLogicalDriveStrings()。对于每个驱动器,将给定文件的相对路径附加到它的末尾,然后检查该文件是否存在,例如使用 FileExists()。如果是这样,您现在知道在下一次运行应用程序之前要为所有文件使用哪个驱动器(您可以保存运行之间的驱动器路径,如上所述)。如果未找到该文件,请移至下一个驱动器。

,

在命令行上添加一个参数怎么样?

开始

D:\myfolder\myfile D

开始

J:\myfolder\myfile J

GUI 文件可以接受参数。使用以下代码捕获它:

DriveLetter := ParamStr(1);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。