作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Possible Duplicate:
Reference object instance created using “with” in Delphi
我用来在 Delphi 中创建查询对象的一个方法遵循第一个代码示例。它为我提供了对该对象的引用,然后我可以将该对象传递给函数。
procedure SomeProcedure;
var
qry: TQuery;
begin
qry := TQuery.Create(nil);
with qry do
begin
Connection := MyConn;
SQL.Text := 'SELECT * FROM PEOPLE';
Open;
funcDisplayDataSet(qry);
Free;
end;
end;
是否也可以在WITH语句中执行此操作,其中您的Create对象包含在WITH语句中?
procedure SomeProcedure;
begin
with TQuery.Create(nil) do
begin
Connection := MyConn;
SQL.Text := 'SELECT * FROM PEOPLE';
Open;
funcDisplayDataSet( ??? ); // Here I'm unsure how to pass the object created...
Free;
end;
end;
我可以将此动态对象传递给像 `funcDisplayDataSet(TQuery) 这样的函数吗?
I just would like to know if this is possible. I'm not looking for a summary on why the WITH statement is bad or good. There are other posts on StackOver flow with that discussion.*
最佳答案
一般来说,这是不可能以干净的方式实现的。您的选择:
Self
的方法。with
并为实例创建一个局部变量。如果您可以控制类(class),则选项 1 是可行的。但这让类(class)看起来很奇怪。为什么类需要一个返回实例的实例方法?如果您无法控制类,那么您可以按照 RRUZ 的建议使用类助手,但我认为使用类助手是最后的手段。我从来没有用类助手解决过问题。
剩下选项 2。这就是我解决问题的方法。
关于delphi - 如何获取对在WITH 语句中创建的TQuery 对象的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8912337/
我是一名优秀的程序员,十分优秀!