Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-05-2006
Avatar de waltergomez
waltergomez waltergomez is offline
Miembro
 
Registrado: may 2006
Posts: 202
Poder: 21
waltergomez Va por buen camino
Tu clase debe derivar de TComponent.

Para grabar el component en un archivo;

Código Delphi [-]
procedure TForm1.SaveComponentToFile(sFilename: string);
var
  FS: TFileStream;
begin
  FS := nil;
  try
    FS := TFileStream.Create(sFileName, fmCreate);
    FS.WriteComponent(TuComponente);
  finally
    FS.Free;
  end;
end;

Y para leer desde el archivo,

Código Delphi [-]
procedure TForm1.ReadComponentFromFile(sFilename: string);
var
  FS: TFileStream;
begin
  FS := nil;
  try
    FS := TFileStream.Create( sFileName, fmOpenRead );
    FS.ReadComponent(TuComponente);
  finally
    FS.Free;
  end;
end;


Pero primero deberias pasar esa clase java a delphi.

Espero te sirva,
Responder Con Cita
  #2  
Antiguo 09-05-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Una traducción del código que copiaste, pensando en derivar la clase de "TComponent" para hacer uso de lo que dice el compañero Walter, podría ser como sigue en Delphi:

Código Delphi [-]
unit UEcuaciones;

interface

uses
  Classes;

type
  TEcuaciones = class(TComponent)
  private
    FNombre, FApellido: string;
  public
    constructor Create(AOwner: TComponent); override;
    function GetNombre : string;
    function GetApellido : string;
    procedure SetNombre(nombre: string);
    procedure SetApellido(apellido: string);
  end;

implementation

{ TEcuaciones }

constructor TEcuaciones.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  { TODO }
end;

function TEcuaciones.GetNombre: string;
begin
  Result := Self.FNombre;
end;

function TEcuaciones.GetApellido: string;
begin
  Result := Self.FApellido;
end;

procedure TEcuaciones.SetNombre(nombre: string);
begin
  if (Self.FNombre <> nombre) then
    Self.FNombre := nombre;
end;

procedure TEcuaciones.SetApellido(apellido: string);
begin
  if (Self.FApellido <> apellido) then
    Self.FApellido := apellido;
end;

end.

Sin embargo, fíjate que los métodos "Gets" y "Sets" no hacen sino asignar un nuevo valor a las variables que nos interesan, por un lado, y por otro devolver el valor de dichas variables. Entonces podríamos simplicar un poco el código en Delphi, gracias a las "propiedades":

Código Delphi [-]
unit UEcuaciones2;

interface

uses
  Classes;

type
  TEcuaciones = class(TComponent)
  private
    FNombre, FApellido: string;
  public
    constructor Create(AOwner: TComponent); override;
    property Nombre: string read FNombre write FNombre;
    property Apellido: string read FApellido write FApellido;
  end;

implementation

{ TEcuaciones }

constructor TEcuaciones.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  { TODO }
end;

end.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 09-05-2006
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
Sólo un comentario:

Para que el código de walter funcione con la clase de dec, la propiedades deben declararse como published en lugar de public.

// Saludos
Responder Con Cita
  #4  
Antiguo 09-05-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Ea, pues ya sabemos otra cosa nueva. Gracias Román.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 09-05-2006
Avatar de waltergomez
waltergomez waltergomez is offline
Miembro
 
Registrado: may 2006
Posts: 202
Poder: 21
waltergomez Va por buen camino
Si queres profundizar y tomarte algunas aspirinas podes serializar una clase que no derive de TComponent.
Delphi al igual que Java tiene funciones que te permiten acceder a las propiedades y metodos tanto public como published de otras clases.
En la unidad TypInfo.pas hay muchas funciones realizar esto.

Este ejercicio te permitira obtener conocimiento para despues crear Wizards o Expertos.

Aqui tenes buenos expertos http://www.gexperts.org/

Saludos,
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Ayuda Con Clase DES edgusano .NET 2 04-04-2005 22:05:41
Métodos de clase. jplj OOP 14 22-11-2004 09:30:19
...la clase... Jure Humor 0 27-07-2004 20:00:47
Una clase al ClipBoard bustio OOP 2 07-07-2004 00:35:16
Clase NO registrada marcial Varios 3 05-12-2003 14:50:38


La franja horaria es GMT +2. Ahora son las 23:40:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi