Delphi XE2 之 FireMonkey 入门(30) - 数据绑定: TBindingsList: TBindExpression 的 OnAssigningValue 事件...
生活随笔
收集整理的這篇文章主要介紹了
Delphi XE2 之 FireMonkey 入门(30) - 数据绑定: TBindingsList: TBindExpression 的 OnAssigningValue 事件...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
表達式中的函數有限, 譬如我想通過綁定輸出文本的長度(譬如在 Label1 中綁定輸出 Edit1.Text 的長度)就沒有相應的函數;
這可在 TBindExpression 的 OnAssigningValue 事件中處理.
TBindExpression 和它的兄弟們 (TBindExprItems、TBindLink、TBindListLink、TBindGridLink、TBindPosition、TBindList、TBindGridList、TBindDBEditLink、TBindDBTextLink、TBindDBListLink、TBindDBImageLink、TBindDBMemoLink、TBindDBCheckLink、TBindDBGridLink) 擁有相同的事件.
先在窗體上添加 Label1、Edit1、BindingsList1, 然后激活 Edit1 的 OnKeyUp 事件和窗體的默認事件;
代碼中手動完成了 OnAssingningValue 事件, 在設計時添加事件會更方便.
unit Unit1;interfaceusesSystem.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types,FMX.Controls, FMX.Forms, FMX.Dialogs, Data.Bind.EngExt, Fmx.Bind.DBEngExt, System.Rtti,System.Bindings.Outputs, FMX.Layouts, Data.Bind.Components, FMX.Edit;typeTForm1 = class(TForm)Label1: TLabel;Edit1: TEdit;BindingsList1: TBindingsList;procedure FormCreate(Sender: TObject);procedure Edit1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);procedure MyOnAssigningValue(Sender: TObject; AssignValueRec: TBindingAssignValueRec; var Value: TValue; var Handled: Boolean);end;varForm1: TForm1;implementation{$R *.fmx}procedure TForm1.FormCreate(Sender: TObject); beginwith TBindExpression.Create(BindingsList1) dobeginControlComponent := Label1;ControlExpression := 'Text';SourceComponent := Edit1;SourceExpression := 'Text';OnAssigningValue := MyOnAssigningValue; //Active := True;end; end;procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); beginBindingsList1.Notify(Sender, ''); end;procedure TForm1.MyOnAssigningValue(Sender: TObject; AssignValueRec: TBindingAssignValueRec; var Value: TValue; var Handled: Boolean); beginValue := Length(Value.ToString); // end;end.
轉載于:https://my.oschina.net/hermer/blog/320663
總結
以上是生活随笔為你收集整理的Delphi XE2 之 FireMonkey 入门(30) - 数据绑定: TBindingsList: TBindExpression 的 OnAssigningValue 事件...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 IntraWeb (31) - I
- 下一篇: 问题解决