Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除对象,禁用TGrid(Delphi XE5+;iPad)上的水平滚动_Ipad_Delphi_Firemonkey_Tgrid - Fatal编程技术网

删除对象,禁用TGrid(Delphi XE5+;iPad)上的水平滚动

删除对象,禁用TGrid(Delphi XE5+;iPad)上的水平滚动,ipad,delphi,firemonkey,tgrid,Ipad,Delphi,Firemonkey,Tgrid,我现在正在开发一个iPad应用程序,它使用一个带有动态创建内容的TGrid 但这给了我一些问题: 由于某些原因,我无法释放和释放添加到TGrid的对象(再次删除它们)。在Windows中,FreeAndNil解决了这个问题,但在Mac模拟器或iPad设备上,FreeAndNil似乎什么都不做。我能想到的唯一解决方案是将RowCount设置为适当的数量,但是控件仍然存在,并且会被覆盖 还有可能以某种方式禁用TGrid中的水平滚动,或者我需要为此实现一个自定义控件吗 也可以在TGrid中禁用水平滚动

我现在正在开发一个iPad应用程序,它使用一个带有动态创建内容的TGrid

但这给了我一些问题: 由于某些原因,我无法释放和释放添加到TGrid的对象(再次删除它们)。在Windows中,FreeAndNil解决了这个问题,但在Mac模拟器或iPad设备上,FreeAndNil似乎什么都不做。我能想到的唯一解决方案是将RowCount设置为适当的数量,但是控件仍然存在,并且会被覆盖

还有可能以某种方式禁用TGrid中的水平滚动,或者我需要为此实现一个自定义控件吗

也可以在TGrid中禁用水平滚动

当然,只需调整列的大小以适应网格的大小即可。或者,如果不能这样做,请使用TColumn.Visible属性。若可见列的witdh之和小于网格的宽度,你们将并没有滚动条。但在没有滚动条的情况下,您必须处理在网格中左右移动的问题


示例:具有5列的网格,仅前2列可见,左右键可见。按下右键时,最左边的可见列0将不可见,列2开始可见/现在列1和2可见/

在带有ARC的移动平台上,
Free/FreeAndNil
不会立即释放对象。 看

而是使用,它将立即调用析构函数

DisposeOf强制在对象中执行析构函数代码。 新的Delphi mobile编译器引入了一种新的dispose模式,该模式通过调用DisposeOf实现,即使存在对对象的挂起引用的变量,也会执行析构函数代码。调用DisposeOf方法后,对象将处于特殊状态,即Disposed状态。这意味着,如果再次调用DisposeOf,或者如果引用计数达到零(内存释放的时刻),则不会再次调用析构函数


在移动平台上释放对象。干杯,似乎正在工作:-)由于某种原因,我无法让它工作。我尝试将唯一的列设置为与TGrid相同的长度,不设置其他选项,即使水平滚动不可见,我仍然可以“移动”列位置(从视觉上看,列和行似乎没有完全连接,而是向左或向右移动)。也许这个问题与滚动无关?你没有提到垂直滚动条,如果你有垂直滚动条,你必须减少你的列。看这里: