【发布时间】:2015-05-21 10:29:41
【问题描述】:
大型弹出菜单的绘图问题。 菜单的箭头末端未显示和一些绘画问题
如何解决这个问题?
使用示例代码生成的菜单项:
procedure TForm1.Button1Click(Sender: TObject);
var
mi:TMenuItem;
I: Integer;
begin
for I := 0 to 100 do
begin
mi:=TMenuItem.Create(PopupMenu1);
mi.Caption:='Item '+IntToStr(I);
PopupMenu1.Items.Add(mi);
end;
end;
示例图片:
没有样式的弹出菜单结束(原生)
带有样式的弹出菜单结束
当点击菜单上的箭头位置时:
全屏图片:
编辑:
-德尔福XE3
-添加全屏菜单图像。
【问题讨论】:
-
OT:如何解决这个问题? 有一个较小的菜单。没有人想滚动浏览那么多项目;-) 顺便说一句。你用的是哪个版本的德尔福?你能在你的问题中添加一个 Delphi 版本标签吗?
-
不是更小的菜单。裁剪的图像。添加了 100 个菜单项。德尔福版XE3
-
普通菜单有时会出现同样的问题(未使用样式)。我记得在 Windows 开始菜单上看到类似的错误(垂直线),其中包含许多元素并启用了滚动。但问题并不总是发生。当在较小的水泥中滚动时,这个问题从未出现过。它仅在长时间滚动时才会显示。
-
菜单上的 100 个菜单项是完全错误的,期望它们正常运行是不现实的。子菜单(以及将它们嵌套在另一个子菜单中的能力)是专门发明的,以防止必须在菜单中放置这么多项目,并且期望用户滚动浏览这么多项目是可笑的。 医生,我用手指敲桌子不痛,但是当我把桌子放在上面时真的很痛。为什么? 当你为某物的设计用途做了一些令人难以置信的错误时,当它没有完全按照你的预期工作时,你不应该感到惊讶。
-
实际上我有 60 个菜单项。示例应用程序的 100 个菜单项,Windows 管理 100 多个项目没有任何问题。这是一个 VCL 样式错误。
标签: delphi delphi-xe3 vcl-styles