日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DelphiXe5中的双向绑定

發(fā)布時(shí)間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DelphiXe5中的双向绑定 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在Delphi下等這一功能很久了,雖然C#下早已實(shí)現(xiàn)了這一功能。但是在Dephi下嘗試這項(xiàng)功能時(shí)還是有些許的激動(dòng)。閑言少絮,直接上代碼。

unit BindingDemo;


interface


uses
? Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
? Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.Bind.EngExt, Vcl.Bind.DBEngExt,
? Vcl.StdCtrls, Data.Bind.Components, Vcl.Grids;


type
? TPerson = class(TObject)
? protected
? ? fName: string;
? ? fAge: integer;
? procedure
? ? SetName(const Value: string);
? public
? ? property Name: string read fName write SetName;
? ? property Age: integer read fAge write fAge;
? end;


type
? /// <summary>
? /// 一個(gè)object與ui控件綁定的簡單例子
? /// </summary>
? TForm2 = class(TForm)
? ? bndscp1: TBindScope;
? ? bndngslst1: TBindingsList;




? ? Button1: TButton;
? ? Button2: TButton;
? ? edt1: TEdit;
? ? procedure btnLoadClick(Sender: TObject);
? ? procedure btnSaveClick(Sender: TObject);
? private
? ? fInitialized: boolean;
? ? fPerson: TPerson;
? ? procedure Initialize;
? ? { Private declarations }
? public
? ? { Public declarations }
? ? procedure AfterConstruction; override;
? ? procedure BeforeDestruction; override;
? end;


var
? Form2: TForm2;


implementation


{$R *.dfm}


procedure TForm2.AfterConstruction;
begin
? inherited;
? Initialize;
end;


procedure TForm2.BeforeDestruction;
begin
? fPerson.Free;
? inherited;
end;


procedure TForm2.btnLoadClick(Sender: TObject);
begin
? fPerson.Name := 'Doogie Howser';
? fPerson.Age := 15;
? bndscp1.DataObject := fPerson;
end;


procedure TForm2.btnSaveClick(Sender: TObject);
begin
? bndngslst1.Notify(edt1, '');
end;


procedure TForm2.Initialize;
var
? expression: TBindExpression;
begin
? //Create a binding expression.
? expression := TBindExpression.Create(self);
? expression.ControlComponent := edt1;
? expression.ControlExpression := 'Text';
? //The Text property of Edit1 ...
? expression.SourceComponent := bndscp1;
? expression.SourceExpression := 'Name';
? //... is bound to the Name property of fPerson
? expression.Direction := TExpressionDirection.dirBidirectional;
? //Add the expression to the bindings list.
? expression.BindingsList := bndngslst1;
? //Create a Person object.
? fPerson := TPerson.Create;
end;


{ TPerson }


procedure TPerson.SetName(const Value: string);
begin
? fName := Value;
? //ShowMessage('Name changed to "'+ Value +'"');
end;


end.

總結(jié)

以上是生活随笔為你收集整理的DelphiXe5中的双向绑定的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。