//数组的类型为:
//定义数据集类型的指针,每门新班级课程的信息
type
PKcInfo=^TKcInfo;
TKcInfo=record
zxkcmc:string; //执行课程名称
zxkcdm:string; //执行课程代码
xs:string; //学时
xf:string; //学分
sjxq:string; //实际学期
end;///////////////////错误如下://////////////
//在窗体卸载的时候提示错误:invalid pointer opration
//定义数据集类型的指针,每门新班级课程的信息
type
PKcInfo=^TKcInfo;
TKcInfo=record
zxkcmc:string; //执行课程名称
zxkcdm:string; //执行课程代码
xs:string; //学时
xf:string; //学分
sjxq:string; //实际学期
end;///////////////////错误如下://////////////
//在窗体卸载的时候提示错误:invalid pointer opration
解决方案 »
- Undeclared identifier: 'result'这个错误究竟如何纠正?
- 请问thandle 和 cardinal类型是否相同?creatprocess里面的pi.hprocess及pi.hthead是进程及线程的句柄,可是为什么都是cardinal类型呢?
- 如何将双精度行数据转化为要求保留小数点后两位,并要求四舍五入,?再线等待
- TIdUDPServer的问题,难道是因为D版的delphi7的原因吗?
- 如何在msSQL2000中通过create table给字段加入“描述”信息
- 是去是留!
- Delphi中用到Oracle中的Sequences
- COM组件问题
- 怎样获得文件大小?还有谁知道一个文本文件有没有容量上限?
- 偶的师傅们在吗?:一个问题。tell me
- 问个很菜的问题
- DELPHI 多线程问题:如何实现两线程之间的通讯!
with AqryXbjkc do
begin
close;
Parameters.ParamByName('bdxh').Value:=bdxh;
open;
//加载新课程信息
SetLength(NewKcInfo,RecordCount);
cmbXbjkc.Items.Clear;
first;
for i:=0 to RecordCount do
begin
if i=0 then //新课程的combobox中加入一个空行,方便用户取消匹配的课程
begin
cmbXbjkc.Items.Add('');
new(NewKcInfo[i]);
NewKcInfo[i]^.zxkcmc:='';
NewKcInfo[i]^.zxkcdm:='';
NewKcInfo[i]^.xs:='';
NewKcInfo[i]^.xf:='';
NewKcInfo[i]^.sjxq:='';
end
else
begin
cmbXbjkc.Items.Add(trim(fieldbyname('执行课程名称').asstring));
new(NewKcInfo[i]);
NewKcInfo[i]^.zxkcmc:=trim(fieldbyname('执行课程名称').asstring);
NewKcInfo[i]^.zxkcdm:=trim(fieldbyname('执行课程代码').asstring);
NewKcInfo[i]^.xs:=trim(fieldbyname('学时').asstring);
NewKcInfo[i]^.xf:=trim(fieldbyname('学分').asstring);
NewKcInfo[i]^.sjxq:=trim(fieldbyname('实际学期').asstring);
end;
next;
end;
end;
窗体卸载时作了什么操作,把这段代码贴出来.
PKcInfo=^TKcInfo;
TKcInfo=record
zxkcmc:string; //执行课程名称
zxkcdm:string; //执行课程代码
xs:string; //学时
xf:string; //学分
sjxq:string; //实际学期
end;----------------
用到指針地情況 最好不要用string類型 因為可能出問題 我遇到過
用 xf: array[0..10] of Char; 使用固定長度的數組最好 雖然用起來比較麻煩 但是安全。
是正解
....
new(NewKcInfo[i]);
已经用setLength分配了内存,何必用再用new分配内存?是不是这个问题呢?