delphi - E2362 无法访问受保护的符号 TControl.Color 我该如何解决?
问题描述
为什么 Delphi 10 Architect 会出现此错误?
我想通过事件改变Color
形状的属性。OnMouseMove
但它给了我这个错误:
E2362 无法访问受保护的符号 TControl.Color
有什么办法吗?
var
TrafficLights: TTrafficLights;
implementation
{$R *.dfm}
procedure TTrafficLights.btn1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
shp1.Color := clRed;
end;
procedure TTrafficLights.btn2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
shp2.Color := clYellow;
end;
procedure TTrafficLights.btn3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
shp3.Color := clGreen;
end; ```
解决方案
该错误是不言自明的。该Color
属性protected
位于TControl
基类中。派生组件决定是否将属性提升到public
或published
根据需要。
举个例子,TShape
不促进Color
公众访问。您需要改用该Brush.Color
属性,例如:
shp1.Brush.Color := clRed;
shp2.Brush.Color := clYellow;
shp3.Brush.Color := clGreen;
推荐阅读
- python - Python如何通过指定字符获取字符串中的单词?
- java - 使用逗号从 Web 抓取时分隔列表元素
- javascript - 尝试从函数访问地图以在滚动视图中使用
- node.js - Sinon如何在mysql2.createPool函数中对双箭头函数进行单元测试
- r - 制作地图时的警告消息。参数不是原子向量;胁迫
- python - Python中两个列表中两个dict的笛卡尔积
- for-loop - MIPS 中的 For 循环计数器
- python - 为什么在 Windows 上安装 discord.py 时出现错误
- c# - RadioButton Check 事件上的 TextBox 文本绑定
- java - 使用问题
- 和
- 使用 Selenium 读取列表的元素