dfarias
07-05-2014, 11:23:17
Buenos días. Alquien puede ayudarme con este problema ya que no comprendo porque da error el siguiente codido al hacer un casting en el evento click de un boton. Como se ve creo los objetos que luego los uso en diferentes botones. Esto en win32 funciona perfecto pero en android da error class segmentation faul (11).
type
TProd = class(TObject)
private
{ Private declarations }
fnro :integer;
fdenomina :string;
fSector :integer;
public
{ Public declarations }
property nro :integer read fnro write fnro ;
property denomina :string read fdenomina write fdenomina ;
property sector :integer read fsector write fsector ;
constructor Create;
end;
//...
oProd:TProd;
Prod:Tlist.create;
//Crea los objetos
//....
oProd:= TProd.Create;
oProd.Nro:= query.FieldByName('nro').Asinteger;
oProd.denomina:= query.FieldByName('denomina').AsString;
oProd.sector:= dquery.FieldByName('sector').Asinteger;
Prod.add(oProd);
//Asisnar datos de botones con algunos obejtos
//....
procedure TfrmMain.btnProd(Sender: TObject);
var
t:integer;
begin
// Aqui da error class segmentation faul(11). ?????
Prod_actual:= TProd(prod[Tcomponent(sender).Tag -1]).denomina;
type
TProd = class(TObject)
private
{ Private declarations }
fnro :integer;
fdenomina :string;
fSector :integer;
public
{ Public declarations }
property nro :integer read fnro write fnro ;
property denomina :string read fdenomina write fdenomina ;
property sector :integer read fsector write fsector ;
constructor Create;
end;
//...
oProd:TProd;
Prod:Tlist.create;
//Crea los objetos
//....
oProd:= TProd.Create;
oProd.Nro:= query.FieldByName('nro').Asinteger;
oProd.denomina:= query.FieldByName('denomina').AsString;
oProd.sector:= dquery.FieldByName('sector').Asinteger;
Prod.add(oProd);
//Asisnar datos de botones con algunos obejtos
//....
procedure TfrmMain.btnProd(Sender: TObject);
var
t:integer;
begin
// Aqui da error class segmentation faul(11). ?????
Prod_actual:= TProd(prod[Tcomponent(sender).Tag -1]).denomina;