将应用程序图标添加到freepascal / SDL程序?

时间:2016-03-08 22:49:44

标签: icons sdl freepascal titlebar application-icon

我在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 个答案:

答案 0 :(得分:2)

假设您有一个名为 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.