通常狀況下, 數據源相關控件應該有數據模塊中統一管理, 這也方便其餘窗體調用; UserSessionUnit 就是一個現成的數據模塊.
如今把數據源相關控件放在 UserSessionUnit 的窗體上:
FDPhysSQLiteDriverLink1: TFDPhysSQLiteDriverLink;
FDGUIxWaitCursor1: TFDGUIxWaitCursor;
FDConnection1: TFDConnection;
DataSource1: TDataSource;
FDTable1: TFDTable;
並在其 OnCreate 事件中寫代碼:
procedure TIWUserSession.IWUserSessionBaseCreate(Sender: TObject);
begin
FDTable1.Connection := FDConnection1;
DataSource1.DataSet := FDTable1;
FDConnection1.DriverName := 'SQLite';
FDConnection1.Params.Add('Database=FDDemo.sdb');
FDTable1.TableName := 'Orders';
FDTable1.Active := True;
end;
主窗體上只留了 IWDBGrid1: TIWDBGrid, 其代碼更簡單了:
uses ServerController; {爲使用 UserSession}
procedure TIWForm1.IWAppFormCreate(Sender: TObject);
begin
IWDBGrid1.DataSource := UserSession.DataSource1;
IWDBGrid1.Align := alClient;
end;
效果圖: