为了得到当前使用的数据表名称,想通过一个全局变量FmType的值判别后传递进来

星火成炬 2000-07-16 01:10:00
各位大虾,特急!!!:

小弟我Delphi不熟悉,正在做一个项目里的通用查询模块,为了得到当前使用的数据表名称,想通过一个全局变量FmType的值判别后传递进来,大致如下:

1、自定义函数:

function Myfun(Fmt:integer):string;
case fmt of
1011:
result:='MyDataModule.Tbjscg';
1021:
result:='MyDataModule.Tbrck';
......类似
end;

2、然后在我的查询窗口的《开始查询》按钮Click事件中

想得到如下效果:
with Myfun(1011) do
Ls:=Fields[2].FieldName:
end;
相当于:
( with MyDataModule.Tbjscg do
Ls:=Fields[2].FieldName:
end;)的效果
3、如果这样写:肯定不行,怎样能够用MyFun(1011)返回我希望的
MyDataModule.Tbjscg呢,字符串是不能用来传递TTable对象了。

...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
星火成炬 2000-07-16
  • 打赏
  • 举报
回复
多谢IAmKyLix和kxy,两位大虾的答复解决了燃眉之急。
两位的方法都好用,kxy的方法更简洁。
kxy 2000-07-16
  • 打赏
  • 举报
回复
你为什么不直接传Table呢?
比如
function Myfun(Fmt:integer):TTable;// string ==> TTable;
case fmt of
1011:
result:=MyDataModule.Tbjscg;
1021:
result:=MyDataModule.Tbrck;
......类似
end;
/////
with Myfun(1011) do
Ls:=Fields[2].FieldName:
end;


IAmKylix 2000-07-16
  • 打赏
  • 举报
回复
对不起,以上是错误的。
请按照以下改:
with TTable(MyDataModule.FindComponent(MyFun(1011))) do
Ls:=Fields[2].FieldName:
End;
(此窗体需Uses DBTables)
IAmKylix 2000-07-16
  • 打赏
  • 举报
回复
请如下修改:
with TTable(Myfun(1011)) do
Ls:=Fields[2].FieldName:
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧