我已阅读this manual并关注它,但highlighting
无效。
我有什么?
创建新的VCL应用程序。
在表单中删除TEdit
和TButton
个组件(传递值)。
在表单上删除TfrxReport
。
以设计模式打开报告。
在报告页面中删除ReportTile
个频段。
在ReportTitle频段中删除TfrxMemoView
。
添加条件:
1- Value <= 0 -> Red color
2- Value > 0 -> Green color
备忘录的填充色仍为Black
,即使值为>0
或<=0
。
问题:
为什么这种情况不起作用?以及如何使条件有效?
更新
该值已传递给TfrxMemoView
组件:
procedure TForm1.Button1Click(Sender: TObject);
Var Mem : TfrxMemoView;
begin
Mem := frxReport1.FindObject('Memo1') as TfrxMemoView;
Mem.Text := Edit1.Text;
frxReport1.ShowReport();
end;
答案 0 :(得分:0)
未应用任何规则,因为值属性仍为 NULL 。要从Delphi代码中指定常量值,可以编写常量表达式,例如:
procedure TForm1.Button1Click(Sender: TObject);
var
Memo: TfrxMemoView;
begin
Memo := frxReport1.FindObject('Memo1') as TfrxMemoView;
Memo.Text := Format('[%s]', [Edit1.Text]);
frxReport1.ShowReport;
end;
在上面的代码中,我省略了检查是否找到了控件。而且,您需要小心输入文本。它只接受格式的浮点值,该格式不会在小数分隔符中与 ExpressionDelimiters 属性中定义的分隔符冲突。
或者只需设置值属性:
procedure TForm1.Button1Click(Sender: TObject);
var
Memo: TfrxMemoView;
begin
Memo := frxReport1.FindObject('Memo1') as TfrxMemoView;
Memo.Text := Edit1.Text;
Memo.Value := StrToFloat(Edit1.Text);
frxReport1.ShowReport;
end;
在这一项中,检查是否找到了控件也是如此。那里没有必要转换为浮动。 值可以只是一个可转换为float的字符串。