Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problemas con la creacion de clases (https://www.clubdelphi.com/foros/showthread.php?t=57180)

ivanloco 06-06-2008 21:46:07

Problemas con la creacion de clases
 
El problema es el siguiente: tengo dos unidades, una llamada Cubos donde defino una clase "Cubo" y otra unidad llamada Fichas donde defino una clase "Ficha" la cual utiliza instancias de la clase Cubo. Todo compila bien pero en tiempo de ejecución al correr la sentencia Ficha.Create se produce el siguiente error en la primer línea del método constructor:
"Project Trabajo.exe raised exception class EAccessViolation with message 'Access violation at address 004505C6 in module 'Trabajo.exe'. Write of address 00000004'. Process stopped. Use Step or Run to continue."

Unidad Cubos:

Código:

Unit Cubos;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms,
  Dialogs, StdCtrls;

type Cubo = class
  public
  r: integer;
  g: integer;
  b: integer;
  despX: integer;
  despY: integer;
  triangulos: array [1..24] of triangulo;
  constructor Create;
  procedure setColor(rp:integer;gp:integer;bp:integer);
  procedure setDesp(desX: integer;desY: integer);
end;

constructor Cubo.Create;
begin
  r:=255;
  g:=255;
  b:=255;
  despX:= 0;
  despY:= 0;
end;

Unidad Fichas:

Código:

unit Fichas;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Cubos;


type Ficha = class
 public
 cubos: array[1..4] of Cubo;
 desplaX: integer;
 desplaY: integer;
 constructor create;
end;

implementation

constructor Ficha.create;
begin
  cubos[1] := Cubo.Create; (en esta linea se produce el error)
  cubos[2] := Cubo.Create;
  cubos[3] := Cubo.Create;
  cubos[4] := Cubo.Create;
  cubos[1].setDesp(50,0);
  cubos[2].setDesp(0,50);
  cubos[3].setDesp(50,50);
  cubos[4].setDesp(100,50);
end;

Alguien sabe por que? Gracias


La franja horaria es GMT +2. Ahora son las 16:15:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi