我有一个静态的二维数组Array[0..100] of array[0..1] of Tpoint,如果我要清空它,除了全部赋0以外,还有什么好办法吗?
解决方案 »
- 才发现还能这样定义数组,万一的博客。。var Arr: TArray<Integer>
- 为什么Form1调用form2时会出错呢。不同的调用方法,结果却是完全不一样。。。。高手指教
- 如何读取richedit的某一行的宽度有多少像素?
- 高分提问!奇怪的问题,但是简单,开发过组件的近来看看 200409
- 一个Client端调用接口的小问题
- 为什么HOOK CEdit的EN_CHANGE消息可以,Delphi写的TEdit就hook不到?
- 急急!!!treeview中的stateindex和selectedindex,imageindex如何用,(在线等候)
- 对fastreport中的一个TOP值赋值时为什么是以像素为单位?
- : sddlfz(小不点) ???,你在哪里,偶是牛虻
- 如何Install Shield Express做数据库程序客户端安装程序?
- 如何在QUERY控件的SQL语句中使用数据库名作为参数?及将一个数据库中的所有内容COPY到另一个数据库!
- Delphi6中取得当前日期的函数是哪个?
相应的语句就是两个for语句咯
是否下面:FillChar(urarray, 101*2*SizeOf(TPoint), 0);
最简单行之有效的方法就是一个二维循环。
for i := 0 to 100 do
for j := 0 to 1 do
begin
a[i][j].x :=0; //这里的a是TPoint类型
a[i][j].y :=0;
end;
a:Array[0..100] of array[0..1] of Tpoint
if Assigned(a) then
a:=nil;
To SmallHand and cxz7531:nil只能赋给指针类型吧?
To Linux2001:因为这些点集PointArray中的每一个点都是线段的端点,都带有一定的操作,所以,在擦除线段的时候必须把这些点也擦除掉。由于这些点的加入分别是在mousedown
和mouseup中加入的,所以如果我采用动态数组的话就很不方便操作,常常会发生accessViolence的异常,你看有什么好地解决方法没有?
将二维数组的每个的元素置为nil。即:for i:= 0 to 100 do
for j:= 0 to 1 do
a[i][j]:= nil;
即可清0
X: Longint;
Y: Longint;
end;
可看到为记录型,又不是对象型,只能请0
你要先看指针里存放的是什么东西啊。
如果是记录那么无法清空,建议你重新设计数据结构!其实你完全可以将 定义指针指向TPoint,这样比较好处理!
这是我的一点建议!因为你不知道(0,0)状态处于释放还是一个实在的点。