【问题标题】:Adding an application icon to a freepascal/SDL program?将应用程序图标添加到 freepascal/SDL 程序?
【发布时间】:2016-06-23 02:52:33
【问题描述】:

我在 Windows 7 上安装了 freepascal,但没有安装 IDE。

如何为我正在开发的程序添加图标?我使用 Google 搜索过,但大多数结果都指向 Lazarus IDE 论坛。那里的提示似乎都引用了某种我没有的 *.lpi 文件。

谢谢。

[更新]

我让它部分工作。在文件资源管理器中查看 EXE 时,我可以看到该图标。但是在启动应用程序时,图标不会出现在标题栏中。

[更新]

该程序是使用 SDL 的视频游戏。我做了一些研究并收集了以下代码行:

RWop := SDL_RWFromFile('gharena.ico', 'rb');
ICOimage := IMG_Load_RW(RWop, 1);
//ICOcolorkey := SDL_MapRGBA(ICOimage^.format, 0, 0, 0, 0);
//SDL_SetColorKey(ICOimage, SDL_SRCCOLORKEY, ICOcolorkey);
SDL_WM_SetIcon(ICOimage, Nil);

它似乎大部分都有效。该图标同时出现在标题栏和任务栏中。但是,标题栏图标弄乱了透明度。该图标是一个名为“gharena.ico”的 32 位精灵。运行游戏时,图像的透明部分在程序标题栏中呈现为黑色。任务栏图标没问题,透明度合适。

在上面的代码中,您可以看到我在设置颜色键时搞砸了。但这似乎并不重要。

【问题讨论】:

    标签: icons sdl freepascal titlebar application-icon


    【解决方案1】:

    假设您有一个名为 project.ico 的图标文件。

    创建一个名为project.rc的文件,内容如下:

    ICON_1 ICON "project.ico"
    

    创建一个名为 buildres.cmd 的文件,其内容如下:

    @echo off
    
    set path=C:\FPC\3.0.0\bin\i386-win32\
    
    windres.exe -i project.rc -o project.res
    
    pause
    

    当然,不要忘记根据自己的安装来适配FPC bin目录的路径。

    双击buildres.cmd。您会得到一个名为 project.res 的文件。

    现在,一个测试程序:

    program project;
    
    {$R project.res}
    
    begin
      ReadLn;
    end.
    

    【讨论】:

    • 这会将图标添加到文件资源管理器中的可执行文件,但不会在窗口本身处于活动状态和运行时添加。所以这只是部分答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    相关资源
    最近更新 更多