首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi火猴:在运行时从不同的单元在3D视口上创建立方体

Delphi火猴:在运行时从不同的单元在3D视口上创建立方体
EN

Stack Overflow用户
提问于 2013-04-15 16:08:02
回答 1查看 1.5K关注 0票数 1

我在设计3D扫雷舰。我想创建一个类来生成3D立方体(这将由多个TCubes组成,在一个立方体形状),它将在一个单独的类和单位的3D视口。我需要使多维数据集运行时。我使用的是一个多维数组(TCube数组)。这是我目前拥有的代码,它试图这样做

主要单位:

代码语言:javascript
复制
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.

问题所在的单元:

代码语言:javascript
复制
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”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-15 20:58:54

问题是你打来的

代码语言:javascript
复制
Controller.create(Form2,10);

而不是

代码语言:javascript
复制
Controller := TController.create(Form2,10);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16010433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档