博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Delphi XE2 之 FireMonkey 入门(25) - 数据绑定: TBindingsList: 表达式的灵活性及表达式函数...
阅读量:6690 次
发布时间:2019-06-25

本文共 1877 字,大约阅读时间需要 6 分钟。

  hot3.png

绑定表达式中可以有简单的运算和字符串连接, 但字符串需放在双引号中.
还可以使用 TBindingsList.Methods 提供的一组表达式函数(分别来自 System.Bindings.Methods 和 Data.Bind.EngExt 单元):

ToStr()ToVariant()Round()Format()UpperCase()LowerCase()FormatDateTime()StrToDateTime()Max()Min()CheckedState()SelectedItem()SelectedText()

示例: 用三个 TLabel 分别呈现窗体的宽度、高度、面积.
现在窗体上添加 Label1、Label2、Label3、BindingsList1, 并激活窗体的 OnCreate 和 OnResize 事件:

unit Unit1;interfaceuses  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,  FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, Data.Bind.EngExt,  Fmx.Bind.DBEngExt, Data.Bind.Components;type  TForm1 = class(TForm)    Label1: TLabel;    Label2: TLabel;    Label3: TLabel;    BindingsList1: TBindingsList;    procedure FormCreate(Sender: TObject);    procedure FormResize(Sender: TObject);  end;var  Form1: TForm1;implementation{$R *.fmx}procedure TForm1.FormCreate(Sender: TObject);begin  with TBindExpression.Create(BindingsList1) do  begin    ControlComponent := Label1;    ControlExpression := 'Text';    SourceComponent := Form1;    SourceExpression := '"宽度: " + ToStr(Width)';    Active := True;  end;  with TBindExpression.Create(BindingsList1) do  begin    ControlComponent := Label2;    ControlExpression := 'Text';    SourceComponent := Form1;//    SourceExpression := '"高度: " + ToStr(Height)';    SourceExpression := 'Format("高度: %s", ToStr(Height))'; //同上一行; 在表达式中使用 Format 函数时, 后面的参数不能放在 [] 中    Active := True;  end;  with TBindExpression.Create(BindingsList1) do  begin    ControlComponent := Label3;    ControlExpression := 'Text';    SourceComponent := Form1;    SourceExpression := '"面积: " + ToStr(Width * Height)';    Active := True;  end;end;procedure TForm1.FormResize(Sender: TObject);begin  BindingsList1.Notify(Sender, 'Width');  BindingsList1.Notify(Sender, 'Height');end;end.

在表达式中还可以使用关键字 Self、Owner.

参考:

转载于:https://my.oschina.net/hermer/blog/319680

你可能感兴趣的文章
SQL语句教程(04) AND OR
查看>>
Python 中有关中文编码解码小记
查看>>
EBS 12.1.3 db 11.2.3 dg AND DG SWITCH OVER
查看>>
Oracle中的JOIN
查看>>
html中iframe控制父页面刷新
查看>>
每天一个linux命令(50):crontab命令
查看>>
linux命令7--cat命令&nl命令
查看>>
.NET底层开发技术
查看>>
RHEL regiester
查看>>
c/c++中的一些基础知识
查看>>
练习:输出整数每一位,计算算数,9出现次数,输出图案,水仙花数
查看>>
操作系统的发展
查看>>
HEVC码流简单分析
查看>>
搭建蚂蚁笔记(服务器)
查看>>
lnmp
查看>>
二分查找
查看>>
Cloud Test 在手,宕机时让您不再措手不及
查看>>
Centos7.2安装Vmware Tools
查看>>
深入理解Java内存模型(一)——基础
查看>>
美图秀秀下载|美图秀秀电脑版下
查看>>