2013-09-23 159 views
0

in Firemonkey(XE5)我創建了一個帶有TStringGrid的框架,並且想要添加一個 「過程ShowData(aClientSet:TClientSet);」 在這個過程中,客戶端的行應該只與LiveBindings(TBindSourceDB?)一起顯示,而不知道數據集和無設計器的其他內容? 請問,這怎麼能在運行時完成? 如果數據集關閉並在框架外重新打開(如何觸發TBindings.notify),如何控制網格重新填充? Thx。Delphi livebinding TClientDataSet TStringGrid運行時

回答

0

以下爲我工作:

  1. 包括Data.Bind.EngExt,Fmx.Bind.DBEngExt,Fmx.Bind.Grid, System.Bindings.Outputs,Fmx.Bind.Editors,數據。 Bind.Components, Data.Bind.Grid和Data.Bind.DBScope在你的uses子句中。
  2. 假設您的TStringGrid名爲GRID1和數據集被稱爲qry1:

    VAR
        BDS:TBindSourceDB;
        bdl:TBindingsList;
        gtd:TLinkGridToDataSource;
    begin
        bds:= TBindSourceDB.Create(Self);
        bdl:= TBindingsList.Create(Self);
        gtd:= TLinkGridToDataSource.Create(bdl);

        gtd.DataSource:= bds;
        gtd.GridControl:= Grid1;

        bds.DataSet:= qry1;
    end;

希望這有助於! (我使用TFDQuery作爲我的數據集,但我確信任何TDataset後代都應該正常工作。)