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);
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