- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用Beyond Compare (一个很棒的程序),当它在菜单栏上显示“新版本可用”标签时,给人留下了深刻的印象。我点击它,弹出一个安装新版本框,它安装了,程序重新启动,出现了新版本,没有更多标签。
我认为这是一个很棒的功能。该标签位于菜单栏的显着位置,用户不会错过它。我已经有了更新程序,所以我所要做的就是添加标签。这应该很容易。
这是我想要的标签:
(来源:beholdgenealogy.com)
...错误。我不知道如何在那里添加标签。菜单栏及其上方的控制区域似乎是视觉组件的不干涉区域。我无法在那里放置一个。
但我知道这是可以做到的,因为Beyond Compare是一个Delphi程序。
谁能告诉我必须做什么才能将 TLabel 放入菜单栏中,或者至少使其看起来位于菜单栏上的正确位置?
作为引用,我使用 Delphi 2009。
<小时/>结论:Christopher 似乎正确地弄清楚了 Beyond Compare 的人做了什么。我决定实现菜单项,但没有定制他的“所有者绘制”解决方案。因此,我没有得到蓝色粗体下划线超链接的外观,但我也不会丢失所有者绘制跳过的所有自动内容(例如 Vista 样式)。
为了将菜单项放在右侧,我在“帮助”后面添加了一个带有标题“”且被禁用的项目。
谢谢,克里斯托弗。我一直以为它一定是一个标签,但你看到了这一点。
最佳答案
你确定这是一个标签吗?
我没有使用过该程序,但它可能只是一个菜单项,设置为“所有者绘制”并绘制成看起来像链接?
http://sirmonkeys.com/images/updatelink.png
(在 Delphi 7 中完成)
procedure TForm1.MYITem1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
acanvas.Font.Style := [fsUnderline,fsbold];
acanvas.Font.color := clblue;
acanvas.Brush.Style := bsClear;
acanvas.TextOut(arect.left+1,arect.top+1,'Link to Update...');
end;
procedure TForm1.MYITem1MeasureItem(Sender: TObject; ACanvas: TCanvas;
var Width, Height: Integer);
begin
width := 100;
end;
然后将 ImageList
分配给 MainMenu1.Images
或将 MainMenu1.OwnerDraw
设置为 true
。
关于delphi - 如何在Delphi中添加TLabel到菜单栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1760620/
我正在尝试创建 TLabel 的动态数组s,然后插入已经存在的 TLabel s 在 IDE 中创建到其中,这样我就可以在代码中使用该数组。 我的目的是将这种方法用于几个类似的过程。 我想通过使用循环
我对 using redis as a rails cache 进行了以下配置,紧密改编自 Rails 文档: Rails.application.configure do ... confi
我想让 TLabel 标题在循环中以固定间隔显示 TListbox 的项目。 在 Listbox1: TListbox我有这些项目: Item1 Item2 Item3 Item4 我有一个 Labe
在我的应用程序中,我使用 TLabel对象运行时。 有一个问题:代表 20 个标签需要很长时间(大约 1-2 秒)。 父组件上的 DoubleBuffered 没有帮助。 Application.Pr
我有一个 Delphi XE2 项目。我的目标是从字符串中分离出单个字符,然后更改字体颜色,之后所有字符都将显示在滚动TLabel中。 基本上我的项目是显示 Scrolling Tex ,每个字符的颜
我有一个具有固定高度和自动换行的 TLabel。问题是,当标题文本超过标签的高度时,我看不到最后一行文本。我在整个互联网上搜索可以向下滚动并显示超出标题高度的最后一行文本的标签组件。 正如您在这张图中
好吧,问题来了。我在面板中有一个标签组件。该标签与 alClient 对齐并启用了自动换行。文本可以从一行到几行不等。我想重新调整面板(和标签)的高度以适合所有文本。 当我知道文本和面板的宽度时,如何
我想创建一个自定义控件(TRichEdit 的后代)。我只想在编辑字段上方添加一些文本。 我创建了自己的控件,并重写了构造函数来为标题创建 TLabel。它有效,但我的问题是:如何将标签移到 Rich
如果我将制表符放入字符串中,然后从字符串中分配标签的 Caption 属性,制表符会做什么? CR 字符会导致返回,这对于显示多行标题很有用。制表符似乎确实执行某种制表操作 - 我想知道这种行为是否已
我正在尝试使用 Delphi 创建一个从 TLabel 继承的组件,并在 TLabel.Paint 上添加一些自定义图形。我希望图形位于文本的左侧,因此我覆盖了 GetClientRect: func
如果 TLabel 的文本太大以适应标签的范围,我正在尝试减小它的字体大小。我没有看到我可以在标签上设置任何属性来实现这一点,所以我尝试编写自己的方法。我的方法通过使用 TCanvas.TextWid
编辑: 我创建了 a package现在根据 GNU 公共(public)许可证在 GitHub 上发布。非常感谢大家在这个问题上的帮助! 使用这部分脚本: line = { TransactionT
我正在尝试在运行时生成 TLabels 并使用此代码将它们插入到 VertScrollBox 中; var i, f: integer; RT_Label: TLabel; begin
Delphi 10.2.3 FMX 应用程序网络共享 有时以下代码中的标签会更新,但通常不会更新。在网络共享 RescourceReceived 过程中更新可视组件是否不安全? procedure T
我有一个 TLabel,其中 EllipsisPosition 设置为 epEndEllipsis,我需要能够判断文本当前是否被剪切。除了自己计算显示文本所需的面积并将其与标签的实际尺寸进行比较之外,
自从将应用程序从XE移植到XE2后,我注意到一个奇怪的错误,只需在ide中打开表单或运行应用程序,屏幕左上角就会绘制一个白色方框(超出表单) ,将鼠标悬停在上方或将窗口悬停在上方时该消失。我追踪到了
所以,我有一个应用程序加载不同的插件并创建一个每个 TPageControl 上都有一个新选项卡。 每个 DLL 都有一个与之关联的 TForm。 创建表单时将其父级 hWnd 作为新的 TTabSh
我有一个构建帮助消息然后设置 TLabel 的方法该帮助消息的文本属性。但是,每当我尝试设置标签的文本时,都会出现以下异常: 'String index out of range. (-1) Must
我成功编写了一个改变我的TLabel大小的运行时事件。当我重新调整表格大小时 procedure TForm3.pack(Sender: TObject); begin Label1.Font
我想创建一个可以自动调整其宽度的复选框,就像 TLabel 一样。 UNIT cvCheckBox; { It incercepts CMTextChanged where it recompute
我是一名优秀的程序员,十分优秀!