You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi FMX制作渐变画笔绘制球体时触发访问违规错误求助

访问违规错误原因分析与修复方案
  • 错误核心原因:你只声明了TLine类型的变量DLine,但没有创建该类的实例。直接访问未实例化对象的属性(比如DLine.Stroke),会触发空指针访问违规。

修复后的代码示例:

var
  DLine     : TLine;
begin
  // 先创建TLine实例,Owner参数根据实际场景调整:如果要挂载到父控件,传入父控件对象;否则传nil
  DLine := TLine.Create(nil);
  try
    // 配置渐变画笔
    DLine.Stroke.Thickness := 3;
    DLine.Stroke.Gradient.Color :=  $ff0000;  // 红色
    DLine.Stroke.Gradient.Color1 := $0000ff;  // 蓝色
    DLine.Stroke.Kind := TBrushKind.Gradient;
    DLine.Stroke.Gradient.Style := TGradientStyle.Linear;

    // 此处添加将DLine绘制到球体的逻辑,比如把DLine添加到球体控件的对象列表中
  finally
    // 如果没有将DLine挂载到父控件,用完后手动释放实例;若已挂载,父控件会自动管理释放,可去掉此行
    DLine.Free;
  end;
end;

额外注意事项:

  • 确认项目中已引用TLine所在的单元:VCL项目引用Vcl.StdCtrls,FMX项目引用FMX.Objects。
  • 如果DLine需要长期存在(比如作为球体的一部分),创建时把父控件作为Owner传入,避免手动管理释放逻辑,防止内存泄漏。

内容的提问来源于stack exchange,提问作者CHRssg gg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:55:20