Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-03-2010
elarys elarys is offline
Miembro
 
Registrado: abr 2007
Posts: 94
Poder: 18
elarys Va por buen camino
Error: Incompatible types: got "Pointer" expected

Hola, estoy tratando de pasar mi clasesita de Delphi a Lazarus para programar sobre linux ubuntu y probar que tal me va... resulta que me esta dando error y ya se me quemo el libro

Error: Incompatible types: got "Pointer" expected "TSocio"
Este seria el error en esta parte
Exactamente en la linea
Result := FSocios[index];

function TSocioList.GetItems(index:integer):TSocio;
begin
Result := FSocios[index];
end;

Aqui una parte de mi clasesita

Código Delphi [-]
type 
  TSocio = class (TPersistent) 
  protected 
    FNumero:integer; 
    FApellido:string; 
    FNombre:string;
etc... etc...
Hasta ahi todo bien

Y despues quiero una lista de 1 a n datos

Código Delphi [-]
  TSocioList = class (TPersistent) 
  private 
    FSocios:TList; 
  protected 
    function GetItems(index:integer): TSocio; 
  public 
    constructor Create; 
    procedure Add(item:TSocio); 
    procedure Delete(index:integer); 
    function GetCount:integer; 
    property Count:integer read GetCount; 
    property Items[index:integer]: TSocio read GetItems; 
  end; 
 
implementation 
 
constructor TSocioList.Create; 
begin 
  FSocios := TList.Create; 
end; 

procedure TSocioList.Add(item:TSocio); 
begin 
  FSocios.Add(item); 
end;
 
procedure TSocioList.Delete(index:integer); 
begin 
  FSocios.Delete(index); 
end; 
 
function TSocioList.GetCount:integer; 
begin 
  Result := FSocios.Count; 
end; 
 
function TSocioList.GetItems(index:integer):TSocio; 
begin 
  Result := FSocios[index]; 
end;

Levanto datos de mi base de datos con query y asigno a la lista
la clase me devuelve una lista con 1 o n datos de mi tabla
que despues por cada formulario o donde sea los puedo usar

Código Delphi [-]

type 
  TfrmMain = class(TForm)
  //etc... etc...
 
  private 
    FSocio:TSocio;

    function GetSocio: TSocio; 
    procedure SetSocio(const value: TSocio); 
 
  public 
    property Socio:TSocio read GetSocio write SetSocio; 
  end;

var 
  frmMain: TfrmMain; 
 
implementation 
 
function TfrmMain.GetSocio: TSocio; 
begin 
  if not Assigned (FSocio) then 
    FSocio := TSocio.Create; 
  Result := FSocio; 
end; 
 
procedure TfrmMain.SetSocio(const value: TSocio); 
begin 
  FSocio := Value; 
end;

procedure TfrmMain.PrepareEdit; 
begin 
  edtNumero.Text := IntToStr(Socio.Numero); 
  edtApellido.Text := Socio.Apellido; 
  edtNombre.Text := Socio.Nombre; 
end;

etc... etc...

Si tengo que agregar otra parte de codigo para que se entienda solo pidan me
El error no debe ser tan grave ya que en delphi esto funciona
El problema esta en free pascal del lazarus

Última edición por elarys fecha: 05-03-2010 a las 04:54:00.
Responder Con Cita
  #2  
Antiguo 05-03-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Y si intentas esto?

Código Delphi [-]
function TSocioList.GetItems(index:integer):TSocio;
begin
  Result := TSocio(FSocios[index]);
end;

// Saludos
Responder Con Cita
  #3  
Antiguo 06-03-2010
elarys elarys is offline
Miembro
 
Registrado: abr 2007
Posts: 94
Poder: 18
elarys Va por buen camino
Gracias roman funciono perfecto, ahora me pregunto porque no me da error en delphi... y en lazarus si??
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
Error "Invalid pointer operation" en función contenida en DLL Albano OOP 2 20-06-2007 23:01:31
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
Incompatible types: 'Integer' and 'Currency' Lore Castillo Varios 2 09-02-2006 21:49:33
Incompatible types: 'tmessagenbuttons' and 'integer' con App.Messagebox purhé Varios 4 11-07-2005 09:25:01
fallo : incompatible types : String and TQRDBText chele Impresión 7 27-10-2004 16:10:17


La franja horaria es GMT +2. Ahora son las 07:02:56.


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