Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-06-2008
ivanloco ivanloco is offline
Miembro
 
Registrado: abr 2006
Posts: 30
Poder: 0
ivanloco Va por buen camino
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

Última edición por roman fecha: 06-06-2008 a las 23:43:32. Razón: agregar etiqueta [delphi]
Responder Con Cita
  #2  
Antiguo 06-06-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
ivanloco, por favor no repitas hilos.

Por favor respeta la guia de estilo.
Muchas gracias.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 07-06-2008
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con la creacion de clases ivanloco OOP 0 06-06-2008 21:46:07
Problemas con la creación de TTimer es tiempo de ejecución vejerf OOP 3 14-04-2008 16:26:14
Creación de un control menú. Problemas con estilo de ventana. abracadabra OOP 0 12-09-2007 01:13:50
Problemas con creacion de obj en ejecucion mbcito OOP 4 21-01-2005 18:18:12
problemas con clases y metodos rojito JAVA 1 03-10-2004 23:06:28


La franja horaria es GMT +2. Ahora son las 12:29:00.


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
Copyright 1996-2007 Club Delphi