我在做的一个程序,有好多窗体,可是在某些窗体是类似的,请问如何解决才比较合适啊

时间:2022-07-19 23:49:01
在10几个窗体上,界面都是类似的,比如说窗体的左边是一个DBGRID,右边是LABLE和对应的DBEDIT,不同的是DBGRID和DBEDIT对应的表不同,能不能把他们做到一个窗体上,请教大家。

8 个解决方案

#1


做成一个窗体,然后通过属性改变窗体的内容。

#2


在窗体上放一些Panel把DBGRID放到Panel中,用那个表时,让他的Panel->Visible=true;不用时让他的Visible=false;注意调整Panel的位置。

#3


就一个窗体就行了,你可以先放一个TABLE在上面,把一些该设置的熟悉设置好,然后通过传参数的方式把你要连接的表的指针传进去,然后让你的TABLE指向该指针就可以了。

#4


用继承阿,先写好基层的界面和基本应用,然后继承,不过bcb的继承我用得不太好

#5


用繼承吧,新建項目,新建一個Form,作為父類,把相同的控件布局好;然後點"新建",你可以    看到有一頁的TITLE名字是你的項目名稱,選到這頁,就可以看到那個新建的Form名,選Inherit,    點OK,你就可以看到新建的FORM和父類是一樣的,當然你可以根據你的具體要求修改各控間的    屬性,基本上就是這樣啦!

#6


可以动态的更改DBGrid的DataSource,或者改变DBGrid中DataSource的DataSet,动态的改变Label的Caption,不过这样的缺点是,不能为DBGrid静态的添加  列 ,不容易自己控制列的属性,难两全啊,当DBGrid中 列的宽度并不美观的时候,代码调整是很麻烦的。

你还可以使用NoteBook控件,实现多个页面的切换,而不需要建立多个Form

#7


先作出第一个窗体,然后在此窗体上右击,选 "Add to Repository...",
以后就可以以此窗体作为模板创建新的窗体。

#8


可以用继承,也可以直接用一个窗口。对于一个窗口可以通过设置frm的Tag属性进行区分。
这是我动态改变dbgrid显示列的代码
THourDataViewerFrm *p=new THourDataViewerFrm(this);
        p->Tag=1;
        p->Caption="谐波数据";
        p->Hour_Device_Query->Close();
        TColumn *DBGrid_column;
        p->DBGrid_hourdata_d->Columns->Clear();
        DBGrid_column=p->DBGrid_hourdata_d->Columns->Add();
        DBGrid_column->Title->Caption="设备号";
        DBGrid_column->FieldName="sbno";
        p->Query1->SQL->Text=“”;

#1


做成一个窗体,然后通过属性改变窗体的内容。

#2


在窗体上放一些Panel把DBGRID放到Panel中,用那个表时,让他的Panel->Visible=true;不用时让他的Visible=false;注意调整Panel的位置。

#3


就一个窗体就行了,你可以先放一个TABLE在上面,把一些该设置的熟悉设置好,然后通过传参数的方式把你要连接的表的指针传进去,然后让你的TABLE指向该指针就可以了。

#4


用继承阿,先写好基层的界面和基本应用,然后继承,不过bcb的继承我用得不太好

#5


用繼承吧,新建項目,新建一個Form,作為父類,把相同的控件布局好;然後點"新建",你可以    看到有一頁的TITLE名字是你的項目名稱,選到這頁,就可以看到那個新建的Form名,選Inherit,    點OK,你就可以看到新建的FORM和父類是一樣的,當然你可以根據你的具體要求修改各控間的    屬性,基本上就是這樣啦!

#6


可以动态的更改DBGrid的DataSource,或者改变DBGrid中DataSource的DataSet,动态的改变Label的Caption,不过这样的缺点是,不能为DBGrid静态的添加  列 ,不容易自己控制列的属性,难两全啊,当DBGrid中 列的宽度并不美观的时候,代码调整是很麻烦的。

你还可以使用NoteBook控件,实现多个页面的切换,而不需要建立多个Form

#7


先作出第一个窗体,然后在此窗体上右击,选 "Add to Repository...",
以后就可以以此窗体作为模板创建新的窗体。

#8


可以用继承,也可以直接用一个窗口。对于一个窗口可以通过设置frm的Tag属性进行区分。
这是我动态改变dbgrid显示列的代码
THourDataViewerFrm *p=new THourDataViewerFrm(this);
        p->Tag=1;
        p->Caption="谐波数据";
        p->Hour_Device_Query->Close();
        TColumn *DBGrid_column;
        p->DBGrid_hourdata_d->Columns->Clear();
        DBGrid_column=p->DBGrid_hourdata_d->Columns->Add();
        DBGrid_column->Title->Caption="设备号";
        DBGrid_column->FieldName="sbno";
        p->Query1->SQL->Text=“”;