zoukankan      html  css  js  c++  java
  • 学习使用资源文件[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 的资源做图标.

  • 相关阅读:
    poj 3616 Milking Time
    poj 3176 Cow Bowling
    poj 2229 Sumsets
    poj 2385 Apple Catching
    poj 3280 Cheapest Palindrome
    hdu 1530 Maximum Clique
    hdu 1102 Constructing Roads
    codeforces 592B The Monster and the Squirrel
    CDOJ 1221 Ancient Go
    hdu 1151 Air Raid(二分图最小路径覆盖)
  • 原文地址:https://www.cnblogs.com/del/p/1068381.html
Copyright © 2011-2022 走看看