我在设计3D扫雷舰。我想创建一个类来生成3D立方体(这将由多个TCubes组成,在一个立方体形状),它将在一个单独的类和单位的3D视口。我需要使多维数据集运行时。我使用的是一个多维数组(TCube数组)。这是我目前拥有的代码,它试图这样做
主要单位:
unit mineMainForm;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Rtti, System.Classes,
System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Types3D,
FMX.Objects3D, mineControl;
type
TForm2 = class(TForm3D)
procedure Form3DCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
Controller : TController;
implementation
{$R *.fmx}
procedure TForm2.Form3DCreate(Sender: TObject);
begin
Controller.create(Form2,10);
end;
end.问题所在的单元:
unit mineControl;
interface
uses
FMX.Forms, FMX.Objects3D, sysutils;
Type
tController = class
private
cubeArray : Array[1..10,1..10,1..10] of TCube;
public
constructor create(Form : TForm3D; cubeCount :integer);
end;
implementation
{ tController }
constructor tController.create(Form: TForm3D; cubeCount: integer); //cubeCount Max 10, min 1
var
x, y, z : Integer;
begin
for x := 1 to cubeCount do
begin
for y := 1 to cubeCount do
begin
for z := 1 to cubeCount do
begin
CubeArray[x,y,z] := TCube.Create(Form);
With CubeArray[x,y,z] do
begin
Visible := True;
Position.X := 0;
Position.Y := 0;
Position.Z := 0;
Parent := Form;
end;
end;
end;
end;
end;
end.当我尝试使用"mineField“作为AOwner运行创建时,我收到了访问冲突错误。我如何修复它才能正常工作,或者如果它不能工作,我该如何做呢?
我是编程新手(高中一年半),如果你认为我知道的很少,我将不胜感激。非常感谢。
错误:“模块'mine3D_p.exe‘中地址00A0CFBB处的访问冲突。写入地址00000008”
发布于 2013-04-15 20:58:54
问题是你打来的
Controller.create(Form2,10);而不是
Controller := TController.create(Form2,10);https://stackoverflow.com/questions/16010433
复制相似问题