Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-05-2014
dfarias dfarias is offline
Miembro
 
Registrado: abr 2007
Posts: 79
Poder: 18
dfarias Va por buen camino
Casting de component

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

Código Delphi [-]
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;
Responder Con Cita
  #2  
Antiguo 07-05-2014
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Pues la respuesta es simple y compleja a la vez.

Bien el elemento prod[Tcomponent(sender).Tag -1] no existe, o bien este elemento no es de tipo TProd.

Personalmente te recomiendo que crees una clase contenedora de elementos que use un TList, en lugar de usar directamente TList. Te quitará muchos problemas.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 07-05-2014
dfarias dfarias is offline
Miembro
 
Registrado: abr 2007
Posts: 79
Poder: 18
dfarias Va por buen camino
Pues como comento en el mensaje esto funciona perfectamente si lo compilo en win32 con lo cual no es problema que no exista o no sea del mismo tipo de elemento.
Responder Con Cita
  #4  
Antiguo 07-05-2014
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Tienes toda la razón, la verdad es que ahora me siento bastante tonto. Lo siento.

[Estoy criando una gripe de caballo. Creo que esta mañana ya empezaba a pulular, pero hasta ahora no me he dado cuenta]
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
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
problema con casting/tipo money en postgreSQL viaraSOFT.com SQL 4 16-02-2011 17:41:54
Casting annieruci OOP 8 16-02-2011 16:16:05
casting Composite Report: error al imprimir MsYo Impresión 2 24-07-2006 12:29:09
Def. de constantes - Casting Mariana OOP 3 21-10-2005 19:24:23
Casting de TComponent en TEdit jamonete2 Varios 2 12-06-2005 15:56:19


La franja horaria es GMT +2. Ahora son las 16:13:30.


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