Foros Club Delphi

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

ivanloco 06-06-2008 23:33:22

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 Delphi [-]
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 Delphi [-]
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

Delphius 06-06-2008 23:41:35

ivanloco, por favor no repitas hilos.

Por favor respeta la guia de estilo.
Muchas gracias.

Saludos,

xEsk 07-06-2008 01:42:29

Algo haces mal al crear la ficha o el error está en otro método que no has puesto su código, porqué he compilado y ejecutado el código que ofreces y no realiza ningún access violation.

Saludos


La franja horaria es GMT +2. Ahora son las 20:01:10.

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