function add(mGamelist:pGamelist):Boolean;
begin
mGamelist.sky:=mGamelist.sky+9;
if mGamelist.sky>10 then
begin
result:=true;
end;
if mGamelist.sky<10 then
begin result:=true;
end;
mGamelist.X:=mGamelist.X+9;
mGamelist.Y:=mGamelist.Y+9;
mGamelist.Z:=mGamelist.Z+9;
list.Add(mGamelist); //这里提示出错 ,但是希望不出错原因估计是泛型数组不支持这种操作吧 ///////mGamelist其实是一个指针 可以怎么才可以转换为可以让泛型数组可以接受的形式呢?///// //////////////////貌似怎么写都不可以。。求写过的人或者知道的人 帮忙看下/////
begin
mGamelist.sky:=mGamelist.sky+9;
if mGamelist.sky>10 then
begin
result:=true;
end;
if mGamelist.sky<10 then
begin result:=true;
end;
mGamelist.X:=mGamelist.X+9;
mGamelist.Y:=mGamelist.Y+9;
mGamelist.Z:=mGamelist.Z+9;
list.Add(mGamelist); //这里提示出错 ,但是希望不出错原因估计是泛型数组不支持这种操作吧 ///////mGamelist其实是一个指针 可以怎么才可以转换为可以让泛型数组可以接受的形式呢?///// //////////////////貌似怎么写都不可以。。求写过的人或者知道的人 帮忙看下/////
到底要怎么写才可以。头大啊
List: TList<pGamelist>;
感觉太邪恶了
TGamelist =packed record
sky:Integer;
X: Single;
Y: Single;
Z: Single;
get:Boolean;
pGamelist:Pointer; //把指针放在结构体里面 不知道是不是可以正常使用
end;
...
List: TList<TGamelist>;//这里是定义的泛型数组你的数据结果定义挺奇怪的,看上面的结构中定义了一个pGamelist:Pointer; 你是想定义一个链表吗?既然要定义链表为啥还要用List: TList<TGamelist>;
这样当然出错应该用:
list.Add(mGamelist^);
参考下这个,嘿嘿
要是想在 add()这个过程实现 对list数据的操作是怎么实现的? add(@list[0]); //这样的写法是错误 的 要怎么写?
这个代码也是错的 重新分配了指针 直接导致程序编译通过 运行出现 错误提示 也就是那个指针 不是结构体指针 是编译器重新分配的。
比如 add(@list[0]); 虽然这么写编译错误 但是 我的目的就是实现这个操作
lst: TList<pGamelist>;并且你在加入的时候,不是定义为一个实例,
ceshi:TGamelist;
ceshitwo:TGamelist;
这里不应该这样定义,而是定义为
ceshi:pGamelist;
ceshitwo:pGamelist;使用时创建:
New(ceshi);
New(ceshitow);
...
list.Add(ceshi);
....