CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

自定义过程中这个错误是咋回事?

楼主chtwo(chtwo)2003-08-01 14:46:32 在 Delphi / VCL组件开发及应用 提问

我在程序中申明了一个的过程,  
  var  
  procedure   DataCheck;  
   
  在该过程中,有以下语句:  
  var    
  BYear:   string;  
  EYear:   string;  
      .  
      .  
  BYear   :=   ComboBox1.text;  
  EYear   :=   ComboBox2.text;  
    .  
    .  
  为什么编译时出现下面这个错误呢?  
  [Error]   Unit1.pas(532):   Undeclared   identifier:   'ComboBox1'  
   
  谢谢!  
   
   
  问题点数:0、回复次数:14Top

1 楼IORILI(眼镜)回复于 2003-08-01 14:54:29 得分 0

你的过程是在什么地方声明的???Top

2 楼firetoucher(风焱)回复于 2003-08-01 14:55:53 得分 0

你用的是外部过程  
  你可以  
  1   将DataCheck申明位form1的过程  
  2   在ComboBox1前面加form1   用form1.ComboBox1,(ComboBox2雷同)  
  (假定ComboBox1的窗口为form1)Top

3 楼IORILI(眼镜)回复于 2003-08-01 14:59:17 得分 0

将这个过程放在放COMBOBOX1   和   COMBOBOX2的窗体的UNTI单元里就行了  
  Top

4 楼things(Loving You)回复于 2003-08-01 15:02:38 得分 0

要把过程定义在   private后者public处才行,否则不认窗体上的控件Top

5 楼zhangheaaa(无相)回复于 2003-08-01 15:08:31 得分 0

首先引用(uses)combobox1所在的unit,然后引用combobox1时加窗体前缀,  
  比如:form1.combobox1.text;Top

6 楼FrameSniper(http://naoku.net/blogs/framesniper/)回复于 2003-08-01 15:18:57 得分 0

你的申明是申明一个例程,例程就是不依附于任何类的过程或函数。  
   
  因此,由于你的ComboBox1和ComboBox2是申明与某个类中的,所以需要在前面加上类限定符,告诉你这个例程是从哪个地方读取过来的,假设你的两个ComboBox是在类TForm1中申明的,则需要这样:  
   
  Form1.ComboBox1或2  
   
  --------------------------------------------------------------------------  
  其实这样的问题你完全可以找个很基础的参考书就可以解决!^0^Top

7 楼geyobing(大地精灵)回复于 2003-08-01 15:24:41 得分 0

上面的解释已经很到位了Top

8 楼wangguan007(张)回复于 2003-08-01 16:05:01 得分 0

声明过程时  
  public  
      procedure   datacheck;  
      {public   declications}  
  定义过程时:  
  procedure   Tform1.DataCheck;  
  var  
  .....  
  begin  
      .....  
      BYear   :=   form1.ComboBox1.text;  
      EYear   :=   form1.ComboBox2.text;  
      .....  
  end;  
  Top

9 楼koma2003(koma)回复于 2003-08-01 16:11:29 得分 0

只能帮你UP一下了Top

10 楼deepsen(deep.森)回复于 2003-08-01 16:15:49 得分 0

顶!~~~~~~~~Top

11 楼hongchenzpm111(红尘)回复于 2003-08-01 16:19:09 得分 0

这些解释已经可以结贴了Top

12 楼jenemery(后脑勺)回复于 2003-08-01 17:06:00 得分 0

因该可以了吧?楼上的做法肯定可以的。Top

13 楼ghao0(干什么)回复于 2003-08-01 17:18:11 得分 0

改一下:  
  声明过程时  
  public  
      procedure   datacheck;  
      {public   declications}  
  定义过程时:  
  procedure   Tform1.DataCheck;  
  var  
  .....  
  begin  
      .....  
      BYear   :=   ComboBox1.text;  
      EYear   :=   ComboBox2.text;  
      .....  
  end;  
   
   
   
  或  
   
   
  procedure   DataCheck(ComboBox1,ComboBox2:TComboBox);  
  var  
  .....  
  begin  
      .....  
      BYear   :=   ComboBox1.text;  
      EYear   :=   ComboBox2.text;  
      .....  
  end;  
   
  Top

14 楼ghao0(干什么)回复于 2003-08-01 17:20:05 得分 0

procedure   DataCheck();  
  var  
  .....  
  begin  
      .....  
      BYear   :=   Form1.ComboBox1.text;  
      EYear   :=   Form1.ComboBox2.text;  
      .....  
  end;  
   
  也可以,但不推荐  
  Top

相关问题

  • 自定义过程?
  • 新人弱问:自定义了一个组件,不能引用,咋回事儿?
  • 如何自定义错误说明
  • 一条错误信息(自定义类)
  • weblogic如何自定义错误页
  • webbrowser错误页面自定义问题
  • 关于自定义标签的错误!!!
  • 如何自定义500.100错误页?
  • 控制自定义错误显示和定义自定义的错误页:customErrors
  • ASP自定义过程的问题

关键词

  • combobox
  • datacheck
  • byear
  • eyear
  • 申明
  • 过程
  • 例程
  • 窗体
  • 定义
  • tform

得分解答快速导航

  • 帖主:chtwo

相关链接

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

广告也精彩

反馈

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