为什么Delphi 10 Architect会出现此错误?
我想通过OnMouseMove
事件更改形状的Color
属性。但它给了我一个错误:
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
属性是TControl
基类中的protected
。派生组件决定是否根据需要将属性提升为public
或published
。
举个例子,TShape
不会将Color
提升为公共访问。您需要使用Brush.Color
属性,例如:
shp1.Brush.Color := clRed;
shp2.Brush.Color := clYellow;
shp3.Brush.Color := clGreen;