我有一个程序,旨在准备一个带有几个标签和下拉列表的表格。但我不能改变标签的字体颜色。有人可以帮忙吗?
我找到了一个链接,说他们找到了答案,但我无法理解它。 How to programmatically alter Font properties in Firemonkey controls
以下是尝试执行更改的单位的代码。
unit procedures;
interface
Uses
System.SysUtils, System.Types, System.UITypes, System.Classes,
System.Variants, fmx.controls;
Procedure resetproductlists;
implementation
uses main_unit, datalive_unit, AddUniqueItemToComboBox;
Procedure resetproductlists;
begin
With Datalive.products Do
Begin
Try
active := False;
params.clear;
sql.text := 'select supplier,item,width,height from products';
active := True;
Main.Combobox1.clear;
Main.Combobox2.clear;
Main.Combobox3.clear;
Main.Combobox4.clear;
Main.Edit1.text := '';
Main.Edit2.text := '';
Main.SpinBox1.Value := 0;
Main.label13.text := 'n/a';
Main.label13.StyledSettings := Main.label13.StyledSettings -
[TStyledSetting.ssFontColor];
Main.label13.FontColor := TAlphaColors.Aqua;
Main.label14.text := 'R 0.00';
Main.label14.FontColor := clBlack;
while not eof do
Begin
try
addtocombo(Main.Combobox1, Fieldbyname('supplier').Asstring);
addtocombo(Main.Combobox2, Fieldbyname('item').Asstring);
addtocombo(Main.Combobox3, Fieldbyname('width').Asstring);
addtocombo(Main.Combobox4, Fieldbyname('height').Asstring);
finally
next;
end;
End;
Finally
active := False;
End;
End;
end;
end.
addtocombo
程序仅将文本插入组合框(如果尚未在组合框中找到)。
任何帮助都会很棒。谢谢
答案 0 :(得分:1)
以下两行改变了XE5中标签的字体颜色:
Label13.StyledSettings := Label13.StyledSettings - [TStyledSetting.FontColor];
Label13.TextSettings.FontColor := TAlphaColors.Aqua;
但是你已经有了那些代码。所以问题是为什么它在你的情况下不起作用。我说你的代码没有执行或者某些东西将颜色变回黑色。尝试在FFontColor := Value;
的TTextSettings.SetFontColor中设置条件断点,该条件断点仅在将颜色更改为Aqua或从Aqua更改颜色时触发。这可能会给你一个线索。