Delphi XE2의FireMonkey 입문(29) - 데이터 귀속:TBindingsList: 표현식의 Evaluate () 방법

2175 단어 Delphi
TBindingsList에는 하나의 표현식이 있을 수 없습니다. 표현식의 Evaluate 방법을 통해 귀속을 단독으로 제출할 수 있고 Active = False에서 제출할 수 있습니다.
TBindExprItems에서 대응하는 방법은 EvaluateFormat입니다.
테스트 구상: Label1, Label2의 귀속 원본은 Edit1과 같아서 각각 귀속을 제출합니다.
1. 창에 컨트롤을 추가: Label1, Label2, Edit1, BindingsList1;
2,Edit1의 OnKeyUp, OnChange 이벤트, 그리고 창의 기본 이벤트를 활성화합니다.

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Edit, Data.Bind.EngExt,
  FMX.Bind.DBEngExt, Data.Bind.Components;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    BindingsList1: TBindingsList;
    procedure FormCreate(Sender: TObject);
    procedure Edit1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
    procedure Edit1Change(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

var
  bindExpression1, bindExpression2: TBindExpression;

procedure TForm1.FormCreate(Sender: TObject);
begin
  bindExpression1 := TBindExpression.Create(BindingsList1);
  bindExpression2 := TBindExpression.Create(BindingsList1);

  with bindExpression1 do
  begin
    ControlComponent := Label1;
    ControlExpression := 'Text';
    SourceComponent := Edit1;
    SourceExpression := 'Text';
    // Active := True;
  end;

  with bindExpression2 do
  begin
    ControlComponent := Label2;
    ControlExpression := 'Text';
    SourceComponent := Edit1;
    SourceExpression := 'UpperCase(Text)';
    // Active := True;
  end;
end;

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
  bindExpression1.Evaluate;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  bindExpression2.Evaluate;
end;

end.

좋은 웹페이지 즐겨찾기