自定义过程中这个错误是咋回事?
我在程序中申明了一个的过程,
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




