• 学习使用资源文件[1] 入门



    资源文件(*.res)通过编译指令 $R 关联, 譬如工程文件 Project1 中的 {$R *.res} 就是关联 Project1.res 资源文件, 我们直接写作 {$R Project1.res} 不会有问题(但如果工程文件改名时, 你也得随着改才行). 譬如:
    program Project1;
    
    uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1};
    
    {$R Project1.res}
    
    begin
      Application.Initialize;
      Application.MainFormOnTaskbar := True;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
    
    这个资源文件中至少包含着文件图标, 假如我们删除 {$R *.res} 后编译, 看前后对比图:



    这时我们可以通过代码, 调用其他图标:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Application.Icon.LoadFromFile('c:\temp\my.ico');
    end;
    


    这样还是不好, 如果运行程序的电脑没有这个文件呢? 最好让程序携带着它, 这就要通过资源文件. 让我们从头来过:

    1、新建一个 VCL Forms Application; 并 Save All;

    2、并通过菜单 Project → View Souse 打开工程源文件;

    3、删除 {$R *.res}

    4、如图新建一个 Text 文件



    5、文件编辑如下:
    MainIcon ICON "c:\temp\my.ico"

    注意: 其中的 c:\temp\my.ico 可以随便定义, 但文件必须存在; 另外其中的所有大小写无关, 路径两边的双引号也可以省略.

    6、把它保存为: Project1.rc ; 注意要保存在程序相同目录, 文件名和工程文件名相同, 后缀是 rc

    7、如图把 Project1.rc 添加到工程组:



    8、这时工程文件自动添加了一行: {$R 'Project1.res' 'Project1.rc'}

    9、好了, 编译执行程序, 如图:



    注释:

    1、*.rc 文件算是资源文件(*.res) 的源文件, 在程序编译过程中会编译成同名的 res 文件;

    2、上面的例子是个特例, 一般我们不能使用和工程同名的资源文件;

    3、MainIcon ICON "c:\temp\my.ico" 中的 ICON 说明这是一个图标资源, MainIcon 是该资源的标识符, 这个标识符应该是可以自定义的, 不过在这个特例中, 只能使用 MainIcon , 因为程序要从同名的资源文件中查找标识为 MainIcon 的资源做图标.

  • 相关阅读:
    JQuery Easy UI 1.7官网最新版附1.7API
    JS时间戳转换日期格式,附JS脚本详细用法
    JS原生对象实现异步请求以及JQ的ajax请求四种方式
    WebService跨域配置、Ajax跨域请求、附开发过程源码
    反射DataTable转实体类
    前端分页、及分页原理
    源码剖析之sun.misc.Unsafe
    JAVA并发编程学习笔记之CLH队列锁
    java 中的Unsafe
    AbstractQueuedSynchronizer源码解析之ReentrantLock(二)
  • 原文地址:https://www.cnblogs.com/del/p/1068381.html
Copyright © 2020-2023  润新知