低版本Delphi 控制台程序设置图标、版本信息
在低版本Delphi,如 Delphi2007下,Console程序默认是无法设置图标、版本信息的。
设置版本信息,需要引入资源文件,所以在dpr中添加 {$R *.res} 语句就可以了。
但这样,图标的设置界面仍然是不可用,有几种解决办法:
- API设置程序图标
SetConsoleIcon
1 void ChangeIcon( const HICON hNewIcon ) 2 { 3 // Load kernel 32 library 4 HMODULE hMod = LoadLibrary( _T( "Kernel32.dll" )); 5 ASSERT( hMod ); 6 7 // Load console icon changing procedure 8 typedef DWORD ( __stdcall *SCI )( HICON ); 9 SCI pfnSetConsoleIcon = reinterpret_cast<sci>( GetProcAddress( hMod, "SetConsoleIcon" )); 10 ASSERT( pfnSetConsoleIcon ); 11 12 // Call function to change icon 13 pfnSetConsoleIcon( hNewIcon ); 14 15 FreeLibrary( hMod ); 16 }// End ChangeIcon 17 18 // Main function 19 int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) 20 { 21 int nRetCode = 0; 22 23 HMODULE hMainMod = GetModuleHandle( 0 ); 24 ASSERT( hMainMod ); 25 26 HICON hMainIcon = ::LoadIcon( hMainMod, MAKEINTRESOURCE( IDI_ICON3 )); 27 ASSERT( hMainIcon ); 28 29 // Change main window icon 30 ChangeIcon( hMainIcon ); 31 32 // To reset to old icon uncomment this code 33 // ChangeIcon( 0 ); 34 35 return nRetCode; 36 }
- 激活图标设置项
uses 中添加 Forms
代码中添加 Application.Run;
此时已经可以设置图标了,设置后,再去掉这两行,这个时候查看图标设置项又变成不可用的,但程序已经设置上了图标。
其他版本的情况,参见这个讨论的帖子 https://stackoverflow.com/questions/1627526/change-icon-for-a-delphi-console-application
浙公网安备 33010602011771号