Ver Mensaje Individual
  #1  
Antiguo 18-07-2006
Avatar de johurgi
johurgi johurgi is offline
Miembro
 
Registrado: jul 2006
Posts: 95
Reputación: 20
johurgi Va por buen camino
Problema de Access Violation

Buenas.

Soy nuevo en esto de delphi, y tengo un problemilla a la hora de acceder a los datos de una clase contenida dentro de una unidad.

Aqui os muestro el codigo.

Unit2(Clase TCuentaBancaria)
Código Delphi [-]
unit Unit2;
interface

type
  TCuentaBancaria = class(TObject)

  private
  TNumCuenta:string;
  TSaldoCta:currency;
  TTipoCuenta:string;
  public
  constructor Create(TNumCuenta:string;TSaldoCta:currency;TTipoCuenta:string);
  function Numero():string;
  function Saldo():currency;
  function Tipo():string;
  procedure Ver();
  
  end;

implementation
constructor TCuentaBancaria.Create(TNumCuenta:string;TSaldoCta:currency;TTipoCuenta:string);
begin
Self.TNumCuenta:=TNumCuenta;
Self.TSaldoCta:=TSaldoCta;
Self.TTipoCuenta:=TTipoCuenta;
end;

function TCuentaBancaria.Numero():string;
begin
result :=TNumCuenta
end;

function TCuentaBancaria.Saldo():currency;
begin
result := TSaldoCta
end;

function TCuentaBancaria.Tipo():string;
begin
result := TTipoCuenta
end;

procedure TCuentaBancaria.Ver();
begin
end;

end.

El formulario desde dondo accedo a la clase es el siguiente:
Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    MaskEdit1: TMaskEdit;
    MaskEdit2: TMaskEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    ComboBox1: TComboBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure FormShow(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    function ValidarDatos():boolean;
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);

  private

  public
    
  end;

var
  Form1: TForm1;
  CB:TCuentaBancaria;
  TipoC:Array[1..2] of string;
  nc:string;
  sc:currency;
  tp:string;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
var
  i:integer;
begin
TipoC[1]:='Corriente';
TipoC[2]:='Ahorro';
for i:=1 to 2 do
  Form1.ComboBox1.Items.Add(TipoC[i]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if Form1.ValidarDatos()=True then
begin
  TCuentaBancaria.Create(nc,sc,tp);
  //CB.Create(nc,sc,tp);
  ShowMessage('Cuenta bancaria creada');
end
  else ShowMessage('Datos mal introducidos');

end;
function TForm1.ValidarDatos():boolean;
begin
if Form1.MaskEdit1.Text <>'' then
  if Form1.MaskEdit2.Text <> '' then
    if Form1.ComboBox1.Text <> 'Tipo de Cuenta' then
    begin
    nc:=Form1.MaskEdit1.Text;
    sc:=strtocurr(Form1.MaskEdit2.Text);
    tp:=Form1.ComboBox1.Text;
    ValidarDatos :=True;
    end
    else ValidarDatos:=False
  else ValidarDatos:=False
else ValidarDatos:=False;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
try
ShowMessage(CB.Numero);
finally
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
try
ShowMessage(CurrToStr(CB.Saldo));
finally
end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
try
ShowMessage(CB.Tipo)
finally
end;
end;

end.

Me da un error de access violation, cuando despues de crear el objeto "TCuentaBancaria" intento consultar alguno de los valores que le he introducido y no encuentro el porque me da ese error.

Si alguien me puede echar una mano se lo agradeceria.

Un saludo
Responder Con Cita