我的应用程序中有一个“搜索和替换”对话框,我想根据窗体的模式(即搜索或替换)更改窗体的图标。
这是我用来配置表单的例程:
procedure TfmFindReplace.SetFormMode(Mode: tConfigMode);
begin
// Set up form for Search or Replace.
if Mode = fcmCurrent then exit;
fFormMode := Mode;
pnlReplaceHldr.Visible := FormMode=fcmReplace;
chkPromptOnReplace.Visible := FormMode=fcmReplace;
rbCurrentProject.Visible := (fmProjManagerVT.IsOpen) and Not (Mode=fcmReplace);
if mode=fcmFind then begin
Caption := 'Find Text';
Icon.LoadFromResourceName(HInstance, 'SEARCH');
image1.Picture.Icon.LoadFromResourceName(HInstance, 'SEARCH')
end
else begin
Caption := 'Replace Text';
Icon.LoadFromResourceName(HInstance, 'REPLACE');
image1.Picture.Icon.LoadFromResourceName(HInstance, 'REPLACE')
end;
end;
我无法更改标题栏上的图标。为了检查是否从资源文件中选取了图标,我向窗体添加了一个图像,以检查是否正在重新加载它。
我使用的是 Delphi 11.1。
1条答案
按热度按时间wwwo4jvm1#
看起来我使用的主题覆盖了设置。(我使用的是Windows11的黑暗和光明主题)我的工作使表单类型之间的转换相当笨拙,这是:
在设置样式元素时,窗体似乎被清除,然后重新绘制。有更干净的解决方案吗?