1、有一个 from做为基类窗体,供其他窗体继承,每个窗体都需要一个同名的变量cdsName:TClientDataSet;  但又不能设为公共变量,因为用的是标签打开模式,如果用公共变量,原来打开的窗体在使用该变量时会报错。  请问如何快速达到继承窗体不用一个个设置cdsName私有变量的效果。2、
创建窗体时写:
DBGridEh1.DataSource:=DataSource1;
DataSource1.dataset:=ClientDataSet1;自定义过程:
procedure TDtM.JsOpen(ClientDataSetName:TClientDataSet;SqlString:String);
begin
    sqlstr:=SqlString;
    ClientDataSetName.Data:=aiapp.GetSQLData(SqlString);
end;因为ClientDataSet1有可能是变量,请问在使用上面的过程时,不直接写DataSetName名达到效果,我以下的写法却报错:Incompatible types: 'TClientDataSet' and 'TDataSet'DtM.JsOpen(DBGridEh1.DataSource.DataSet,'select * from uinfo');