一个很急的问题,感觉很少人用,欢迎共同探讨,请进看(100分)

C

caochen

Unregistered / Unconfirmed
GUEST, unregistred user!
我正准备开发一个项目,为了快速开发,想做基窗体,比如BaseForm,功能是提供一个
DataSet属性,上面放一些按钮,比如说第一条,上一条,下一条,最后一条,新增,
删除等,只要设置窗体的DataSet属性,就可以针对设置的DataSet进行这些操作,
谁可以帮我解决这个问题,或者有例子发给我吗?谢谢!caochen@163.com
 
直接在BaseFrm中写控制代码啊!还要写一个带集合的控制属性(属性编辑器)!
 
可以给例子吗?
 
基类写控制代码,然后继承就行了么!
 
同志们,怎么写呢?我不懂啊,给一个例子好吗?
 
关注中。
 
需要在BaseForm中放第一条,上一条,下一条,最后一条,新增,删除等功能的DataSet,
在BaseForm的这些按钮事件中机直接控制DataSet,派生类中可以直接引用DataSet
 
使用info_work2000 控件吧
 
窗体哪来Dataset属性?我倒是做了下个公共过程,用于控制你所说的这四个按钮的enabled
状态。这四个按钮放在窗体的工具栏上,不同窗体使用时只需拷贝即可:

procedure G_DataNavi(B_Set:TDataset;B_First,B_Prior,B_Next,B_Last:TSpeedButton);
//根据数据表当前位置设置各移动按钮的状态
begin
With B_Set do
begin
if isEmpty then
begin
B_first.Enabled :=false;
B_prior.Enabled :=false;
B_Next.Enabled :=false;
B_Last.Enabled :=false;
exit;
end;
if RecNo=1 then
begin
B_first.enabled:=false;
B_Prior.enabled:=false;
end
else
begin
B_First.enabled:=true;
B_prior.enabled:=true;
end;
if RecNo=Recordcount then
begin
B_next.enabled:=false;
B_Last.enabled:=false;
end
else
begin
B_Next.enabled:=true;
B_Last.enabled:=true;
end;
end;
end;

然后在每一个按钮的执行命令中只需在执行完相应代码时执行一下该过程,即可设置其相应
的状态,如上一条按钮的执行:
Data.Set_Gnp.Prior; //Data.Set_Gnp是数据集控件。
G_DataNavi(Data.Set_Gnp,Btn_First,Btn_Prior,Btn_Next,Btn_Last);
 
在Form上使用TDataSetFirst等Action,并将它们与菜单关联即可。不用写一句代码。
Delphi本身就已经实现了这些功能。
 
其实在 formcreate 中写一个函数,把所有的数据控件加上有关的DATASET,就可以满足你的要求
 
呵呵,hanyongjian好办法,其实用多了ActionList都会这么多,不过这样复杂的控制就不方便了
 
做完后,你的程序会变成胖子的。
 
各位富翁,你们可以说得更详细一些吗?
 
用个Frame控件岂不方便?
 
用窗体继承不就行了
从你的BaseForm继承下来的窗体都可用DataSet的呀
 
我是说连上一条、下一条记录等按钮的代码都不用写了,不知道是否可以实现?谢谢大家
 
我有一套完整的基类模板,包括单表窗体,主从表窗体,主从从表窗体,还有
主子从表窗体,还有报表窗体,还有一个DATAMODULE,
功能嘛,基本上包括了所有的操作,总之,如果你想做一个普通窗体程序,
需要你写的代码不
会超过一行!有兴趣跟我联系吧
 
无忧鱼,怎么联系你呢?我很有兴趣,正是我需要的东西,要什么报酬呢?
 
亲爱的无尤鱼:
有这么好的东西啊。可不可以给我学习学习?abenz@163.net
 

Similar threads

D
回复
0
查看
776
DelphiTeacher的专栏
D
D
回复
0
查看
788
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部