GVKun编程网logo

Delphi:文件访问和兼容性文件(Windows 7)(delphi文件操作)

14

本文将为您提供关于Delphi:文件访问和兼容性文件(Windows7)的详细介绍,我们还将为您解释delphi文件操作的相关知识,同时,我们还将为您提供关于BCB和Delphi添加Windows服务

本文将为您提供关于Delphi:文件访问和兼容性文件(Windows 7)的详细介绍,我们还将为您解释delphi文件操作的相关知识,同时,我们还将为您提供关于BCB和Delphi添加Windows服务的描述性文字、Delphi 2007 x Windows 10 - 打开项目时出错 (Delphi 2007 x Windows 10 - Error on opening project)、Delphi 2007应用程序中设置的Windows 7兼容图标、Delphi Windows API判断文件共享锁定状态的实用信息。

本文目录一览:

Delphi:文件访问和兼容性文件(Windows 7)(delphi文件操作)

Delphi:文件访问和兼容性文件(Windows 7)(delphi文件操作)

假设我的应用程序名为mysoft,而我想读取的文件是afile.bin. mysoft位于程序文件夹中.
我们还假设没有使用管理员权限执行mysoft.

procedure TForm1.Button1Click(Sender: TObject);
var 
  afile: File of Byte;
begin
  AssignFile(Infile,'C:\Program Files\mysoft\afile.bin');
  Reset(afile);
  CloseFile(afile);
end;

上面的简单代码将在兼容性文件文件夹中创建afile.bin的副本.

我的问题是:

>为什么?我只读了该死的文件,我不想修改它.
>除了在另一个文件夹中移动文件之外,如何防止这种情况?

我再次只阅读数据文件,我不明白.

解决方法

对Reset的调用导致文件被打开以进行写入.那是因为默认值 System.FileMode是fmOpenReadWrite.由于您的应用程序运行虚拟化,并且由于您的用户令牌没有管理员权限,因此虚拟化层会启动并在虚拟存储中创建该文件的副本.

使用传统Pascal I / O可用的解决方案是将FileMode设置为fmOpenRead.然后重置将打开文件以供读取,并且不会调用虚拟化层.

请记住,FileMode是一个影响所有传统Pascal I / O的全局变量.如果你有线程,或者忘记在需要编写文件时忘记将FileMode设置回fmOpenReadWrite,那么你会感到很遗憾.反叛不是吗?处理广泛的全局标志以控制文件访问模式!好吧,这些东西是在应用程序有线程之前发明的.早在OOP发明之前.所以我能理解为什么会这样.

从中汲取的教训是,现在是时候切换到一种现代形式的文件访问.例如,TFileStream.

实际上,也是您在应用程序中禁用虚拟化的时候了.近6年前,Vista中引入了虚拟化.这对于尚未针对Vista进行重新编译的旧程序来说是一种帮助.您的应用程序不应该仍在使用它.

BCB和Delphi添加Windows服务的描述性文字

BCB和Delphi添加Windows服务的描述性文字

总结

以上是小编为你收集整理的BCB和Delphi添加Windows服务的描述性文字全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Delphi 2007 x Windows 10 - 打开项目时出错 (Delphi 2007 x Windows 10 - Error on opening project)

Delphi 2007 x Windows 10 - 打开项目时出错 (Delphi 2007 x Windows 10 - Error on opening project)

问题:

Just updated from Windows 8.1 to Windows 10 and now when I try to open any project on Delphi 2007, I get his error :

Unable to load project xxxxx The imported project "c:\Windows\Microsft.NET...\Borland.Delphi.Targets" was not found. Confirm that the path declaration is correct, and that file exists on disk

查找需拷贝的文件路径:

在 C:\Windows.old 目录下搜索 Borland.Common.Targets 就能找到该文件所在路径。

解决方案:

You need to copy some files in your old Windows folder to the new one. After that projects open again.

The needed files are these :

c:\windows\Microsoft.NET\Framework\v2.0.50727\Borland.Common.Targets
c:\windows\Microsoft.NET\Framework\v2.0.50727\Borland.Cpp.Targets
c:\windows\Microsoft.NET\Framework\v2.0.50727\Borland.Delphi.Targets
c:\windows\Microsoft.NET\Framework\v2.0.50727\Borland.Group.Targets

Delphi 2007应用程序中设置的Windows 7兼容图标

Delphi 2007应用程序中设置的Windows 7兼容图标

在Delphi应用程序中定义win7兼容图标集的正确方法是什么? (桌面上的可变大小)

我设计了256 * 256图标,然后制作了16 * 16,24 * 24,48 * 48变体. (在Microsoft UX指南中,他们似乎说应该包含这些大小以便在桌面上正确显示).

我已将所有图标变体放在Gimp中的多层文档中,并将整个内容导出为ico.然后我将它作为项目选项中的应用程序图标,按照向应用程序分配图标的直接方式.

最后我在Win桌面(win7)上放了一个shorcut,但是在桌面(Win 7)上制作“Ctrl Wheel”(调整桌面图标的大小,如果你还不知道……)时,正确的图标不是显示,48 * 48之后它保持相同的大小(我怀疑只使用了48 * 48版本).

解决方法

256px大小的图标应该是压缩的PNG图标.我怀疑Delphi 2007附带的资源编译器不喜欢这种格式,所以你需要使用MS资​​源编译器rc.该图标应命名为MAINICON.也就是说,我怀疑256px位图会起作用,它会非常大.

更重要的是,IIRC,Delphi IDE不喜欢256px PNG图标,因此通过IDE将图标添加到项目中是没有意义的.您需要自己构建.res文件并将其与{$R …}指令链接.

最后,您的.ico文件可能不正确.实际存储的256px图像的宽度和高度等于0,因为该字段是字节大小,0以前是无效的.也许这就是IDE噱头.使用其他工具检查.ico文件,例如IcoFX.

可能还有其他问题 – 这些只是我多年来所记得的问题.如果我不得不猜测哪个问题在咬你,我会说这是IDE无法处理256px图标.

我相信IDE在更新版本的这个领域已经逐渐变得更好,但即使在我目前使用的D2010中,它并不完美.

Delphi Windows API判断文件共享锁定状态

Delphi Windows API判断文件共享锁定状态

总结

以上是小编为你收集整理的Delphi Windows API判断文件共享锁定状态全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

今天关于Delphi:文件访问和兼容性文件(Windows 7)delphi文件操作的介绍到此结束,谢谢您的阅读,有关BCB和Delphi添加Windows服务的描述性文字、Delphi 2007 x Windows 10 - 打开项目时出错 (Delphi 2007 x Windows 10 - Error on opening project)、Delphi 2007应用程序中设置的Windows 7兼容图标、Delphi Windows API判断文件共享锁定状态等更多相关知识的信息可以在本站进行查询。

本文标签: