经常遇到这样的问题,比如:
if not assigned(Form) then
Form:=TForm.create... //如果窗体很多就得重复写这样的代码,不能重用;
----------------------------或者:
with query do begin
sql.add....
open;
end;
这样类似的代码很多,内容一样,就是变一个组件名或窗体名就可以重用;比如10个不同名称的窗体,不需要每次都写,付给不同的窗体名做参数,调用一个过程就可以了。
请问这个如何实现呢?
if not assigned(Form) then
Form:=TForm.create... //如果窗体很多就得重复写这样的代码,不能重用;
----------------------------或者:
with query do begin
sql.add....
open;
end;
这样类似的代码很多,内容一样,就是变一个组件名或窗体名就可以重用;比如10个不同名称的窗体,不需要每次都写,付给不同的窗体名做参数,调用一个过程就可以了。
请问这个如何实现呢?
procedure (out fields0,fields1:string;Sqlstr:string,i:integer);
begin
MyAdoquery:=Adoquery.create;
case i of
1:Myadoquery:=BaseQuery;
2:MyAdoQuery:=FeeQuery;
3....
end;
With MyAdoQuery do begin
Close ;
Sql.Text:=Sqlstr;
Open ;
Fields0:=Feidls[0].AsString;
Fields1:=Fields[1].AsString;
Close;
end;
FreeAndNil(MyAdoQuery);
然后可以用overload再做一些查询三个或更多字段的函数。
请参照刘艺的《Delphi模式编程》