unit Unit1; interface uses System.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; type TForm1 = 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; var Form1: TForm1; implementation procedure TForm1.FormCreate(Sender: TObject); begin with TBindExpression.Create(BindingsList1) do begin ControlComponent := Label1; ControlExpression := ; SourceComponent := Edit1; SourceExpression := ; OnAssigningValue := MyOnAssigningValue; Active := True; end; end; procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin BindingsList1.Notify(Sender, ); end; procedure TForm1.MyOnAssigningValue(Sender: TObject; AssignValueRec: TBindingAssignValueRec; var Value: TValue; var Handled: Boolean); begin Value := Length(Value.ToString); end; end.