gpt4 book ai didi

delphi - 如何操纵 TPath 中的各个点?

转载 作者:行者123 更新时间:2023-12-03 15:56:29 25 4
gpt4 key购买 nike

我想更改 TPath 内某些点的坐标。但是,TPath.Data.Points 属性是只读的。

是否有一种方法可以直接操作它们,而无需通过 TPath.Data 字符串、进行更改并刷新控件?

我正在考虑动画和优雅。

也许有人已经修改了另一种方式,否则我就走字符串路线......

(说的是XE2,顺便说一句。不知道这在以后的版本中是否仍然是一个问题)

最佳答案

按如下方式使用类助手:

TPathHelper = class helper for TPath
public
procedure UpdPath;
end;

TPathDataHelper = class helper for TPathData
public
procedure SetPoint(AIndex: Integer; PathPoint: TPathPoint);
end;

{ TPathHelper }

procedure TPathHelper.UpdPath;
begin
UpdatePath
end;

{ TPathDataHelper }

procedure TPathDataHelper.SetPoint(AIndex: Integer; PathPoint: TPathPoint);
begin
Self.FPathData[AIndex] := PathPoint;
Self.FRecalcBounds := True
end;

要更改点,请执行以下操作:

var pp: TPathPoint;
begin
pp.Kind := TPathPointKind.ppMoveTo;
pp.Point := PointF(Path1.Data.Points[0].Point.X + 10,Path1.Data.Points[0].Point.Y);
Path1.Data.SetPoint(0,pp);
Path1.UpdPath;
Path1.Repaint;

关于delphi - 如何操纵 TPath 中的各个点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20683875/

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