在Windows控制面板中选择大字体大小(如125%或150%)时,每次按像素设置某些内容时,VCL应用程序中都会出现问题.
拿走TStatusBar.Panel.我已经设置了它的宽度,使它只包含一个标签,现在使用大字体标签"溢出".与其他组件相同的问题.
戴尔的一些新笔记本电脑已经默认设置为125%,因此在过去这个问题非常罕见,现在非常重要.
可以做些什么来克服这个问题?
我正在研究Delphi程序,它将在"托盘"上显示一个图标.我正在"艰难的方式"(使用Shell_NotifyIcon api等,而不是组件,这里的原因除外).它工作正常,但有时似乎某些系统中的图标有点"模糊".现在,我已经尝试使用16x16 bmp,32x32等.似乎系统将其缩小到所需的大小,但结果根据操作系统版本(或者其他可能的东西)而有所不同....
您是否有任何关于BMP的最佳尺寸和颜色深度的经验,使用ShellI上的Shell_NotifyIcon提取并显示在托盘上?
在Win 7上,MessageDlg显示信息图标而不是确认图标(问号).这是代码:
MessageDlg('Are you sure you want to delete this file?'+ CRLF+ FileName, mtConfirmation, [mbYes, mbNo], 0)= mrYes
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我需要显示16x16像素图标以显示错误/警告/信息.不幸的是LoadIcon(0, IDI_*),LoadImage(0, OIC_*, IMAGE_ICON, 16, 16, LR_SHARED)我总是给我32x32版本的图标.
我读过ShGetStockIconInfo但是只能从Vista开始,我仍然需要支持XP.
有任何想法吗?
TImage如果重要的话,我正在使用Delphi 2010和一个组件.
我想加载并显示其中一个explorer.exe图标.
我使用以下代码(缩写):
// resource id definition
EXP_ICON = MAKEINTRESOURCE(101); { Explorer's Icon resource ID }
// load explorer.exe
ExpInstance := LoadLibraryEx(ExpDirectory,
0,
LOAD_LIBRARY_AS_IMAGE_RESOURCE);
// load the icon from it
ExpIcon := LoadImage(ExpInstance,
MAKEINTRESOURCE(EXP_ICON),
IMAGE_ICON, { load the icon }
32,
32,
LR_LOADREALSIZE);
Run Code Online (Sandbox Code Playgroud)
该代码加载它找到的第一个图标,恰好是一个16色图标.该组中还有其他图标,颜色更多(256和1600万).
我的问题是:是否有可能告诉LoadImage()加载其中一个图标(使用更多颜色的图标),如果是这样的话?
我已尝试更改EXP_ICON为其中一个图标序号ID,但如果该ID不是图标组的ID ,LoadImage()则不会成功.
我没有想法让LoadImage()加载成为我想要的颜色数量的图标.