CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

别笑,写好一个类后,如何调呢?

楼主monglihong(难为)2004-07-02 13:50:17 在 Delphi / VCL组件开发及应用 提问

一时手痒  
  自己写了一个类(封装了微软的TAdoQuery)  
  完是完成了  
  可是其他程序引用时却不停报错  
  一检查,发现不小心类中有明显错误  
   
  引思:  
   
  //**********************************************************************  
  写好一个类后怎么调试呢?????  
  它只是一个单元呀  
  //**********************************************************************  
   
  就如同写一个dll后还可用RUN->parameters设置Host   Application来调试一样?  
   
  为了拯救一个初学类的人,大家高抬贵手写几笔吧? 问题点数:100、回复次数:20Top

1 楼VisualLion(狮子)回复于 2004-07-02 13:55:26 得分 10

将这个单元放到包里管理,打开这个包后,可以用RUN->parameters设置Host   Application来调试.Top

2 楼monglihong(难为)回复于 2004-07-02 14:02:35 得分 0

还有一问题,是怎么加载类的呢?  
  我直接将单元的源程序文件拷贝(如jkym)到实现程序的目录下  
  再在相关模块的  
   
  interface  
  uses   jkym;  
   
  行不行?Top

3 楼zpan1978(原始社会好)回复于 2004-07-02 14:11:36 得分 10

其实你只要把类的单元文件加到你的工程目录下或者lib目录下就可以了  
  tools下的第一个选项,有个lib的页Top

4 楼monglihong(难为)回复于 2004-07-02 14:15:02 得分 0

to:zpan1978(原始社会好)    
  没找到呢?  
  我的类是没有控件的,  
   
  我的MSN是:dkx_mong@hotmail.com  
  那位兄弟加我到MSN上指教吧!Top

5 楼JavaD(一竿残照(the way of delphi))回复于 2004-07-02 14:19:16 得分 10

虚拟数据,并测试输入和应该得到的结果和实际得到的结果是否一致,  
  txxx   =   class,  
  那么你就写点程序来,  
  txxx.Create;  
  assert(txxx.prop1='adf','');  
  assert(txxx.prop2='adf','');  
  assert(txxx.prop3='adf','');  
  assert(txxx.prop4='adf','');  
  .......  
  然后运行你的这个测试程序  
  你可以看看DUnit  
  Top

6 楼ThenLong(完美组合=Delphi/C++)回复于 2004-07-02 14:26:04 得分 0

创建类的实例】  
  跟踪其构造、方法调用等内部实现解决问题  
  Top

7 楼monglihong(难为)回复于 2004-07-02 14:47:54 得分 0

现在最大的问题是:  
   
  我是新建单元写的这个类,  
  可是打死它也加不到其他工程中去?  
   
  why???  
   
  unit   Jkym;  
   
  interface  
   
  uses  
  Windows,   Messages,   SysUtils,   Classes,   Graphics,   Controls,   ADODB,   DB,  
  DBGrids,StdCtrls,System;  
   
  {============================================================================  
  FindYM   Class  
  ============================================================================}  
  type  
  TJkym   =   class(TObject)  
      private  
  QueryTemp:   TADOQuery;  
          {   Private   declarations   }  
      protected  
          {   Protected   declarations   }  
      public  
          {   Public   declarations   }  
   
          function   findNext(strFZ,strYM:String;cboYM:TComboBox):Boolean;  
          function   findPrior(strFZ,strYM:string;cboYM:TComboBox):Boolean;  
          function   Setconn(conn:TADOConnection):Boolean;  
   
      published  
          {   Published   declarations   }  
  end;  
   
      implementation  
   
   
  //函数功能:设置连接  
  function   TJkym.Setconn(conn:TADOConnection):Boolean;  
  begin  
      try  
          QueryTemp.Connection:=conn;  
          Result:=True;  
      except  
          Result:=False;  
      end;  
  end;  
   
  //函数功能:查询前一级掩码  
  function   TJkym.findNext(strFZ,strYM:String;cboYM:TComboBox):Boolean;  
  var   str,strsql:String;  
          i:Integer;  
  begin  
      try  
          cboYM.Clear;  
          if   Length(strym)<4   then  
              Result:=False  
          else  
              begin  
              str:=copy(strYM,1,Length(strYM)-5);  
              strsql:='select   *   from   jkymb   where   strFZBH='''+strFZ+''''+  
                              '   and   strJKBH='''+str+'''';  
              QueryTemp.Active:=false;  
              QueryTemp.SQL.Text:=strsql;  
              QueryTemp.Active:=true;  
              while   not   QueryTemp.eof   do  
                  begin  
                  cboYM.Items.Add(QueryTemp.fieldbyname('strJKBH').AsString);  
                  QueryTemp.Next;  
                  end;  
              end;  
      except  
          Result:=False;  
      end;  
  end;  
   
  //函数功能:查询后一级掩码  
  function   TJkym.findPrior(strFZ,strYM:string;cboYM:TComboBox):Boolean;  
  var   str:String;  
  begin  
      try  
          cboYM.Clear;  
          if   Length(strym)<4   then  
              Result:=False  
          else  
              begin  
              str:=str+'-____';  
              strsql:='select   *   from   jkymb   where   strFZBH='''+strFZ+''''+  
                              '   and   strJKBH   like   '''+str+'''';  
              QueryTemp.Active:=false;  
              QueryTemp.SQL.Text:=strsql;  
              QueryTemp.Active:=true;  
              while   not   QueryTemp.eof   do  
                  begin  
                  cboYM.Items.Add(QueryTemp.fieldbyname('strJKBH').AsString);  
                  QueryTemp.Next;  
                  end;  
              end;  
      except  
          Result:=False;  
      end;  
  end;  
   
   
   
  end.Top

8 楼monglihong(难为)回复于 2004-07-02 15:02:59 得分 0

如果写好的类,只能以源代码的方式整个单元加载到程序中去!  
   
  还有什么意义?  
   
  以一个单元的形式写好类后  
   
  //**************************************************  
  究竟如何加载?  
  //**************************************************Top

9 楼yq3woaini(哈哈镜 选择好心情)回复于 2004-07-02 15:39:17 得分 0

detTop

10 楼VisualLion(狮子)回复于 2004-07-02 15:41:11 得分 10

设置好应用程序的搜索路径,用use语句引用。Top

11 楼deepWATERblue(深水蓝)回复于 2004-07-02 15:55:51 得分 0

UP.Top

12 楼JavaD(一竿残照(the way of delphi))回复于 2004-07-02 16:02:01 得分 10

unit   Form1;  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   Grids,   DBGrids,Math,Printers,Jkym//加上它  
  ;Top

13 楼emeng(叮当猫)回复于 2004-07-02 16:17:19 得分 0

是呀,uses中加入你的单元就可以了Top

14 楼monglihong(难为)回复于 2004-07-02 17:58:00 得分 0

如是这样  
  我写的类对开发人员还有什么秘密可言  
   
  他们不全都看见了????  
   
  封装的意思又何在?  
  Top

15 楼VisualLion(狮子)回复于 2004-07-05 08:20:58 得分 10

uses语句应用的是*.dcu文件Top

16 楼YAMABACK(不要把我当Michael,我只是会投篮)回复于 2004-07-05 08:27:32 得分 10

在测试类的时候,最好是不要安装,用uses语句引用这个单元即可Top

17 楼welllove88(寒林)回复于 2004-07-05 08:29:52 得分 10

没那么麻烦!你自己写的一个类   就可以像引用一个窗口一样引用   然后跟踪调试就好了Top

18 楼cjfden(虚心学习)回复于 2004-07-05 08:47:44 得分 10

upTop

19 楼WuChenCan(雨中男孩)回复于 2004-07-05 08:51:32 得分 0

建一个窗体,针对类的每个成员进行测试也可以啊!Top

20 楼alexanda2000(书生活)回复于 2004-07-05 09:54:08 得分 10

你不想让别人看见你的代码,就把它开发成组件罗。Top

相关问题

  • 请问在jsp中调用外部的类,与jsp调用javabean有何区别??
  • 在JSP中调用JAVA类和使用JAVABEAN有什么区别?
  • 请教调用别的类的指针的用法???
  • 【新手】调色板的类型有啥区别?
  • 类中调用
  • 类的调用
  • 类库调试
  • 请问在类里面 overrides 和 overloads 有什么区别,新手请别笑话
  • 有哪些办法可以在一个类里调用别的类(CView的派生类)的OnPrepareDC() 函数?
  • VC7能调试C++代码吗?(别笑我,我是C++菜鸟呀)

关键词

  • adf
  • txxx
  • cboym
  • jkym
  • strfz
  • strym
  • 单元
  • 类
  • tcombobox
  • 调试

得分解答快速导航

  • 帖主:monglihong
  • VisualLion
  • zpan1978
  • JavaD
  • VisualLion
  • JavaD
  • VisualLion
  • YAMABACK
  • welllove88
  • cjfden
  • alexanda2000

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo