gpt4 book ai didi

delphi - 向 TLabel 添加图形时出现问题

转载 作者:行者123 更新时间:2023-12-02 17:48:37 25 4
gpt4 key购买 nike

我正在尝试使用 Delphi 创建一个从 TLabel 继承的组件,并在 TLabel.Paint 上添加一些自定义图形。我希望图形位于文本的左侧,因此我覆盖了 GetClientRect:

function TMyComponent.GetClientRect: TRect;
begin
result := inherited GetClientRect;
result.Left := 20;
end;

这个解决方案有一个我想解决的主要问题:无法单击控件的“图形区域”,只能单击标签区域。如果标题为空字符串,则根本无法通过单击来选择设计器中的组件。有什么想法吗?

最佳答案

首先请原谅我的英语不好。
我认为更改组件的 ClientRect 不是一个好主意。此属性用于许多内部方法和过程,因此您可能会意外更改该组件的功能/操作。

我认为您可以更改写入文本的点(例如,DoDrawText 过程中的 20 个像素),并且组件可以响应图形区域中的事件。

procedure TGrlabel.DoDrawText(var Rect: TRect; Flags: Integer);
begin
Rect.Left := 20;
inherited;
end;

procedure TGrlabel.Paint;
begin
inherited;

Canvas.Brush.Color := clRed;
Canvas.Pen.Color := clRed;
Canvas.pen.Width := 3;
Canvas.MoveTo(5,5);
Canvas.LineTo(15,8);

end;

关于delphi - 向 TLabel 添加图形时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/134018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com