var
controltext:string;
begin
with tcontrolclass(sender.ClassType).Create(self) do //问题在此
begin
parent:=(sender as tcontrol).Parent;
left:=(sender as tcontrol).Left+10;
top:=(sender as tcontrol).Top+10;
setlength(controltext,50);
(sender as tcontrol).GetTextBuf(pchar(controltext),50);
controltext:=pchar(controltext)+' *';
settextbuf(pchar(controltext));
end;
end;
请问tcontrolclass(sender.classtype) 这句话起到了什么作用,是类型转换,还是别的还有sender as tcontrol 转换的目的是什么, 请各位高手指点
谢谢,谢谢,谢谢,谢谢
controltext:string;
begin
with tcontrolclass(sender.ClassType).Create(self) do //问题在此
begin
parent:=(sender as tcontrol).Parent;
left:=(sender as tcontrol).Left+10;
top:=(sender as tcontrol).Top+10;
setlength(controltext,50);
(sender as tcontrol).GetTextBuf(pchar(controltext),50);
controltext:=pchar(controltext)+' *';
settextbuf(pchar(controltext));
end;
end;
请问tcontrolclass(sender.classtype) 这句话起到了什么作用,是类型转换,还是别的还有sender as tcontrol 转换的目的是什么, 请各位高手指点
谢谢,谢谢,谢谢,谢谢
TControlClass在帮助文件中我没找到,我想应该是找把类类型转换为具体的类,之后才能用Create.
header: tlist;
private
arecord:^arrnode;
public procedure init(k:integer);
procedure insert (k,a,b:integer);
function posindex(k,a:integer):integer;
function pos (k,a,b:integer):list;
end;
var
index:integer;
aray:array of tmyclass;
implementation
uses llfbs;
procedure tmyclass.init (k:integer);
var
i,len:integer;
begin
aray[k]:=tmyclass.Create;
len:=ds[k].kcount;
header:=tlist.Create;
.............为什么单步执行到header:=tlist.create;时出错。错误提示为
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004AF0BB in module 'Project1.exe'. Write of address 00000004'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------