+ -
当前位置:首页 → 问答吧 → delphi 基本问题求解

delphi 基本问题求解

时间:2011-10-19

来源:互联网

delphi 基本问题求解

 private
  ClassList:TStringList;
  sourceList:TStringList;
  function ConnectDB(DB_CON:TADOConnection;p_Dbname,p_Serverip,p_User,p_Password:String):Boolean;
  function Get_ProxyData(p_table:String):Boolean;//获取中间库数据,查看是否有数据需要运行移动

我在这边写了一个函数
  下面是函数的具体应用


function TForm1.Get_ProxyData(p_table:String):Boolean;
begin
  with ADOQuery_Proxy do
  begin
  SQL.Clear;
  SQL.Add('Select * From '+p_table+' where ccwb=0 and cast (stnumber as decimal ) >0 order by ID');
  Open;
  if not IsEmpty then
  result:=true
  else result:=false;
  end;
end;


我想问的是TForm1 这个是什么意思 这个可不可以不写?

作者: fridayday2010   发布时间: 2011-10-19

说明函数属于TForm1 的类成员,如果不写,就不是成员函数,函数内部不能直接访问TForm1 上的属性和组件

作者: bdmh   发布时间: 2011-10-19

引用 1 楼 bdmh 的回复:
说明函数属于TForm1 的类成员,如果不写,就不是成员函数,函数内部不能直接访问TForm1 上的属性和组件


再深度的问下啊

  //新增加加密的函数。
  Function yanzheng(srcdata,key:pchar):boolean;stdcall;external 'ybgetver2.dll';
  Function Getqm(srcdata:pchar):pchar;stdcall;external 'ybgetver.dll';
这个是掉用dll文件的函数

那我写个函数调用 调用yanzheng 要怎么写啊 能简单的举个例子吗

作者: fridayday2010   发布时间: 2011-10-19

因为你是在TForm1类中写代码,所以必须有,想不写的话,把类的定义放到外面

作者: hys_427   发布时间: 2011-10-19

直接调用即可啊,这是静态调用dll函数的方式,还有一种是动态方式,你可以了解下!

作者: hswhjq   发布时间: 2011-10-19

引用 4 楼 hswhjq 的回复:
直接调用即可啊,这是静态调用dll函数的方式,还有一种是动态方式,你可以了解下!




function TForm1.Get_ProxyData(p_table:String):Boolean;
begin
  with ADOQuery_Proxy do
  begin
  SQL.Clear;
  SQL.Add('Select * From '+p_table+' where ccwb=0 and cast (stnumber as decimal ) >0 order by ID');
  Open;
  if not IsEmpty then
  result:=true
  else result:=false;
  end;
end;

 这句代码中的sql open 以后 not IsEmpty 该怎么理解啊?

作者: fridayday2010   发布时间: 2011-10-19

能在线告诉我吗

作者: fridayday2010   发布时间: 2011-10-19

IsEmpty是ADOQuery_Proxy的属性,表示查询后返回结果是否为空
引用 5 楼 fridayday2010 的回复:
引用 4 楼 hswhjq 的回复:
直接调用即可啊,这是静态调用dll函数的方式,还有一种是动态方式,你可以了解下!




function TForm1.Get_ProxyData(p_table:String):Boolean;
begin
with ADOQuery_Proxy do
begin
SQL.Clear;
SQL.Add('Select ……

作者: s11ss   发布时间: 2011-10-19

前面有 with ADOQuery_Proxy do

所以你的 if not IsEmpty then
 
实际是 if not ADOQuery_Proxy.IsEmpty then

作者: pronet   发布时间: 2011-10-19