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 09-04-2013
edorantes edorantes is offline
Miembro
NULL
 
Registrado: oct 2012
Posts: 14
Poder: 0
edorantes Va por buen camino
Leer informacion de un objeto creado

Hola amigos estoy creando un objeto para guardar los datos de un usuario pero lo que no se es como leerlos es decir una vez que los guarde ¿Como los extraigo? me dicen que tengo que hacer un metodo para leerlo pero no se como aqui mi codigo de guardado

Código Delphi [-]
procedure Tusuarios.add (id : Integer; nombre : String;supConDer : Currency ; supSinDer:Currency; cultivo:String);
begin
    idU[ap] := id;
    nombreU.Add(nombre);
    supCder[ap] := supConDer;
    supSder[ap] := supSinDer;
    cultivoU.Add(cultivo);

end;
Lo que no se como hacer es el metodo para mostrar la informacion espero me puedan ayudar
Responder Con Cita
  #2  
Antiguo 09-04-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola edorantes.

Das muy poca información para darte una respuesta concreta.

Habría que ver la declaracion de Tusuarios y también los tipos y entornos de idU, nombreU, supCder, supSder, cultivoU y el índice ap.

Cuando indicas que necesitas leerlos, a que te refieres ¿ A mostrarlos ?, ¿ A devolver el objeto indicado ?.
Que tipo de valor utilizará el método para buscar el objeto ¿El identificador, de tipo entero, o el nombre de tipo string ?, ¿?, ...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 09-04-2013
edorantes edorantes is offline
Miembro
NULL
 
Registrado: oct 2012
Posts: 14
Poder: 0
edorantes Va por buen camino
Este es el codigo de mi unidad
Código Delphi [-]
unit uUsuarios;

interface

uses classes, Types, SysUtils;

type

 //Aqui defino mis propios tipos de variables
 TIntArray = array[0..200] of shortint;
 TSingleArray = array[0..200] of currency;

  Tusuarios = class(TObject)
   Constructor Create;

  private
   idU,cuentaU,subcU  :  TIntArray;
   supCder, supSder :  TSingleArray;
   nombreU, cultivoU    :  TStrings;
   ap : shortint;  {Apuntador, lleva el numero de recibos en el cobro actual}
  public

    procedure inicializa();

    procedure add(id : Integer; nombre : String;
  supConDer : Currency ; supSinDer:Currency; cultivo:String) ;



  end;

implementation

constructor Tusuarios.create;
begin
  nombreU := Tstringlist.create;
  cultivoU := Tstringlist.create;


end;

procedure Tusuarios.inicializa;
begin
  ap := 0; //inicializamos ap que es el apuntador

end;

procedure Tusuarios.add (id : Integer; nombre : String;supConDer : Currency ; supSinDer:Currency; cultivo:String);]//Aqui guardo //los datos de el usuario
begin
    idU[ap] := id;
    nombreU.Add(nombre);
    supCder[ap] := supConDer;
    supSder[ap] := supSinDer;
    cultivoU.Add(cultivo);

end;

   procedure Tusuarios.get  (indice : Shortint);// Este seria el de mostrar los datos guardados anteriores el cual  no se como hacerlo
begin
    

end;

end.
Bueno en mi ojeto guardo la informacion de los usuarios pero no se como hacer el de mostrar
Responder Con Cita
  #4  
Antiguo 09-04-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

A grandes rasgos, como para darte una idea, primero tendrías que incrementar el índice ap en el método add:
Código Delphi [-]
procedure Tusuarios.add(id: Integer; nombre: string; supConDer,
  supSinDer: Currency; cultivo: string);
begin
  idU[ap]:= id;
  nombreU.Add(nombre);
  supCder[ap] := supConDer;
  supSder[ap] := supSinDer;
  cultivoU.Add(cultivo);
  Inc(ap);  // <- Aquí
end;

Y un ejemplo para mostrar el contenido:
Código Delphi [-]
procedure Tusuarios.Show(Indice: Integer);
begin
  if (Indice < 0)or(Indice > ap-1) then
     raise Exception.Create('Indice fuera de rango');
  ShowMessage(Format('%d %s %f %f %s',
   [idU[Indice],nombreU[Indice],supCder[Indice],supSder[Indice],CultivoU[Indice]]))
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 09-04-2013 a las 17:58:01. Razón: ortografía
Responder Con Cita
  #5  
Antiguo 09-04-2013
edorantes edorantes is offline
Miembro
NULL
 
Registrado: oct 2012
Posts: 14
Poder: 0
edorantes Va por buen camino
Bueno amigo hay te va lo que tengo que hacer, lo que pasa es que desde mi clase no puedo usar nada visual lo que tengo que hacer es que una vez que guarde la informacion de los usuarios, despues la pueda visualizar en una tabla desde mi form pricipal
Ejemplo
Código Delphi [-]
var
 InformacionU : Tusuarios;

InformacionU.Create;
InformacionU.add(idU,nombreU,GsupCder,ed_superficie.Value,
         cbox_clave.Items.Text);// Aqui meto la cantidad que quiera de informacion accediendo a mi objeto NOTA enstoy en mi Form NO en mi clase


//Lo que quiero es que desde aqui pueda y sacar la informacion necesaria solo enviandole el numero de apuntador 
y agregarlo a una tabla o listview yo primero lo hacia mostrando directamente los datos en la tabla
asi

with ListView.Items.Add do
begin
   Caption:= '1';
   SubItems.Add( '35' );
   SubItems.Add( 'Eduardo' );
end;
 
pero me dijeron que no que me creara un objeto y mediante eso muestre elmine y agregue


//como viste he tratado de hacerlo el de agregar que es ADD me falta el de mostrar y eliminar si ves que tengo errores ayudame
//Espero me hayas entendido
Responder Con Cita
  #6  
Antiguo 09-04-2013
edorantes edorantes is offline
Miembro
NULL
 
Registrado: oct 2012
Posts: 14
Poder: 0
edorantes Va por buen camino
Bueno amigo hay te va lo que tengo que hacer,
lo que pasa es que desde mi clase no puedo usar nada visual
lo que tengo que hacer es que una vez que guarde la informacion de los usuarios, despues la pueda visualizar en una tabla desde mi form pricipal
Ejemplo
Código Delphi [-]
var
 InformacionU : Tusuarios;

InformacionU.Create;
InformacionU.add(idU,nombreU,GsupCder,ed_superficie.Value,
         cbox_clave.Items.Text);// Aqui meto la cantidad que quiera de informacion accediendo a mi objeto NOTA enstoy en mi Form NO en mi clase


//Lo que quiero es que desde aqui pueda y sacar la informacion necesaria solo enviandole el numero de apuntador y agregarlo a una tabla o listview 
yo primero lo hacia mostrando directamente los datos en la tabla pero me dijeron que no que me creara un objeto y mediante eso muestre elmine y agregue
//como viste he tratado de hacerlo el de agregar que es ADD me falta el de mostrar y eliminar si ves que tengo errores ayudame
//Espero me hayas entendido
Responder Con Cita
  #7  
Antiguo 10-04-2013
edorantes edorantes is offline
Miembro
NULL
 
Registrado: oct 2012
Posts: 14
Poder: 0
edorantes Va por buen camino
No se que paso con las respuestas aneriores, a grandes rasgos quisiera saber como se hace algo asi que ponga un boton y obtenga los datos pero no se como quedaria mi clase, aqui un ejemplo
Código Delphi [-]
procedure TFormMain.btn_cobroClick(Sender: TObject);
begin
 
//ASi es como quisiera que quedara pero aun no se como
 showmessage(Tusuarios.Show(0).getNombre);// Aqui si quisiera mostrar solo el nombre
O tambien
showmessage(IntToString(Tusuarios.Show(0).getCuenta)+Tusuarios.Show(0).getNombre);// Aqui si quisiera mostrar cuenta y Nombre
 
end;
Responder Con Cita
  #8  
Antiguo 10-04-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola edorantes.
Cita:
Empezado por edorantes Ver Mensaje
No se que paso con las respuestas aneriores, a grandes rasgos...
Lo que sucede es que lamentablemente no podemos permanecer conectados a Club Delphi todo lo que nos gustaria...

Cita:
Empezado por edorantes Ver Mensaje
lo que pasa es que desde mi clase no puedo usar nada visual lo que tengo que hacer es que una vez que guarde la informacion de los usuarios, despues la pueda visualizar en una tabla desde mi form pricipal
Te soy sincero, no entiendo la lógica de tu código. Pero te pongo una de las formas en que lo haría, espero que te sirva para sacar alguna idea.

Por lo que comentas arriba ("no puedo usar nada visual"), supongo que tenes que realizarlo en modo consola:
Código Delphi [-]
program Project2; {$APPTYPE CONSOLE}

uses SysUtils;

type
  TUsuarios = class(TObject)
  private
    Fid                : Integer;
    FSupCder, FsupSder : Currency;
    FNombre, FCultivo  : string;
    FVUsuarios         : array of TUsuarios;
  public
    property Nombre: string read FNombre write FNombre;
    property Cultivo: string read FCultivo write FCultivo;
    property SupCDer: Currency read FSupCDer write FSupCDer;
    property SupSDer: Currency read FSupSDer write FSupSDer;
    constructor Create;
    procedure Add(const aID: Integer; const aNombre,aCultivo : string;
      const aSupConDer, aSupSinDer: Currency);
    function GetUser(const id: Integer): TUsuarios;
    destructor Destroy; override;
  end;

// Crear
constructor TUsuarios.Create;
begin
  inherited;
  FVusuarios := nil
end;

// Añadir usuarios
procedure TUsuarios.Add(const aID: Integer; const aNombre,aCultivo : string;
  const aSupConDer, aSupSinDer: Currency);
begin
  SetLength(FVUsuarios, Length(FVUsuarios)+1);
  FVUsuarios[High(FVUsuarios)] := TUsuarios.Create;
  with FVUsuarios[High(FVUsuarios)] do
  begin
    Fid     := aID;
    FNombre := aNombre;
    FCultivo:= aCultivo;
    FSupCder:= aSupConDer;
    FsupSder:= aSupSinDer;
  end;
end;

// Obtener usuario a partir del ID
function TUsuarios.GetUser(const aID: Integer): TUsuarios;
var
  i: Integer;
begin
  Result := nil;
  for i:= High(FVUsuarios) downto Low(FVUsuarios) do
    if aID = FVUsuarios[i].Fid then
     Result := FVUsuarios[i]
end;

// Liberar memoria
destructor TUsuarios.Destroy;
var
  i: Integer;
begin
  for i := High(FVUsuarios) downto Low(FVUsuarios) do
    FVUsuarios[i].Free;
  FVUsuarios := nil;
  inherited
end;

(* Ejemplo del uso *)
var
  U,R: TUsuarios;
begin
  U := TUsuarios.Create;
  try
    U.Add(1,'Juan','trigo',2,3);
    U.Add(2,'Andrea','soja',5.25,3.12);
    U.Add(3,'Maria','cebada',12.13,1.83);
    R := U.GetUser(2);
    if Assigned(R) then
    begin
      Writeln('Nombre : ',R.Nombre);
      Writeln('Cultivo: ',R.Cultivo);
      Writeln('SupCDer:',R.SupCDer:8:2);
      Writeln('SupSDer:',R.SupSDer:8:2);
    end;
  finally
    U.Free;
  end;
  readln;
end.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Leer informacion en nodos de diferentes niveles de un archivo XML cmfab Varios 2 24-10-2012 15:51:35
Formulario creado desde libreria y traspaso de informacion mjjj OOP 0 03-02-2012 21:21:20
¿Cómo saber si un objeto está ya creado? noob OOP 6 14-02-2009 14:11:56
Saber si se ha creado un objeto Cecilio Varios 30 15-11-2008 13:11:13
destruir objeto creado en tiempo de ejecucuión jaime cotino Varios 5 28-06-2005 20:45:36


La franja horaria es GMT +2. Ahora son las 22:56:50.


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