为什么会出现E2362 Cannot access protected symbol TControl.Text?
Why does the E2362 Cannot access protected symbol TControl.Text appear?
这是导致错误的代码:
procedure TfrmQuoteTemp.showData;
begin
lblFirstName.Text := query.FieldByName('First Name').AsString;
lblLastName.Text := query.FieldByName('Last Name').AsString;
lblAddress.Text := query.FieldByName('Address').AsString;
lblTown.Text := query.FieldByName('Town').AsString;
lblCounty.Text := query.FieldByName('County').AsString;
lblPostcode.Text := query.FieldByName('Postcode').AsString;
lblTelNo.Text := query.FieldByName('TelNo').AsString;
end;
此错误仅发生在 Tlabel 上,我根本无法更改其文本 属性。
如果您正在编写基于 VCL 的应用程序,则错误消息非常清楚 - Text
在 TLabel
中受到保护(未发布),它发布了 Caption
属性 代替。更改您的代码以使用 属性.
lblFirstName.Caption := query.FieldByName('First Name').AsString;
为了将来参考,这可以在对象检查器中看到(这表明 TLabel
有一个已发布的 Caption
属性 而不是 Text
属性) 并在 IDE 中使用 Code Insight(键入 lblFirstName.
并按 Ctrl+Space),它不提供 Text
属性,但如果您滚动选择,则会显示 Caption
属性。
(此外,作为一般经验法则(至少在 VCL 中如此):如果控件像 TEdit
和 TMemo
一样接受用户输入(用户可以输入),它发布 Text
属性;如果没有(例如 TLabel
或 TButton
),它会发布 Caption
属性。如 TLabel
不接受用户输入,它发布 Caption
而不是 Text
。)
这是导致错误的代码:
procedure TfrmQuoteTemp.showData;
begin
lblFirstName.Text := query.FieldByName('First Name').AsString;
lblLastName.Text := query.FieldByName('Last Name').AsString;
lblAddress.Text := query.FieldByName('Address').AsString;
lblTown.Text := query.FieldByName('Town').AsString;
lblCounty.Text := query.FieldByName('County').AsString;
lblPostcode.Text := query.FieldByName('Postcode').AsString;
lblTelNo.Text := query.FieldByName('TelNo').AsString;
end;
此错误仅发生在 Tlabel 上,我根本无法更改其文本 属性。
如果您正在编写基于 VCL 的应用程序,则错误消息非常清楚 - Text
在 TLabel
中受到保护(未发布),它发布了 Caption
属性 代替。更改您的代码以使用 属性.
lblFirstName.Caption := query.FieldByName('First Name').AsString;
为了将来参考,这可以在对象检查器中看到(这表明 TLabel
有一个已发布的 Caption
属性 而不是 Text
属性) 并在 IDE 中使用 Code Insight(键入 lblFirstName.
并按 Ctrl+Space),它不提供 Text
属性,但如果您滚动选择,则会显示 Caption
属性。
(此外,作为一般经验法则(至少在 VCL 中如此):如果控件像 TEdit
和 TMemo
一样接受用户输入(用户可以输入),它发布 Text
属性;如果没有(例如 TLabel
或 TButton
),它会发布 Caption
属性。如 TLabel
不接受用户输入,它发布 Caption
而不是 Text
。)