将应用程序图标添加到 freepascal/SDL 程序?
Posted
技术标签:
【中文标题】将应用程序图标添加到 freepascal/SDL 程序?【英文标题】:Adding an application icon to a freepascal/SDL program? 【发布时间】: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 位精灵。运行游戏时,图像的透明部分在程序标题栏中呈现为黑色。任务栏图标没问题,透明度合适。
在上面的代码中,您可以看到我在设置颜色键时搞砸了。但这似乎并不重要。
【问题讨论】:
【参考方案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.
【讨论】:
这会将图标添加到文件资源管理器中的可执行文件,但不会在窗口本身处于活动状态和运行时添加。所以这只是部分答案。以上是关于将应用程序图标添加到 freepascal/SDL 程序?的主要内容,如果未能解决你的问题,请参考以下文章