Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-03-2008
PabloZZZ PabloZZZ is offline
Miembro
 
Registrado: mar 2008
Posts: 20
Poder: 0
PabloZZZ Va por buen camino
Jajaja.... "caño" es una expresión Argentina.. que significa... MUY BUENO...

Ahora.. pensandolo bien... hay algun componente que maneje una tabla en memoria? el TClientDataSet hace eso? No se como usarlo...
Porque estoy pensando que lo que quiero es manejar una tabla.. en memoria.. seleccionar los campos que quiero ver.. y que la tabla tenga más campos... Cómo lo puedo hacer? Dónde aprendo a manejar el TClientDataSet (si es que se ajusta a lo que necesito)

Gracias!!!
Z
Responder Con Cita
  #2  
Antiguo 16-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Enviemos este hilo al principio para que algun maestro lo vea.
Saludos
Responder Con Cita
  #3  
Antiguo 16-03-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Bueno, no soy un maestro pero creo que puedo ayudar en algo:

1. PabloZZZ, ¿al final que és? Una clase o un record? Debes especificar concretamente lo que es, pues dependiendo de ello se hará más o menos fácil lo que buscas... o simplemente traducido: "más o menos código"

Esto te pregunto porque dices:

Cita:
Tengo un objeto (o record)
Bueno, esto me lleva a segundo punto:
Cita:
y quiero convertirlo en una lista donde pueda agregar y borrar elementos
Código Delphi [-]
TLista.Add( sDescrip, nCant, nTotal.... )

Veamos... ¿Que es sDescrip, nCant, etc?

Lo que deseas hacer se puede conseguir con un TObjectList, TList, TStrings, entre otros... cada uno te hará dificil o fácil la tarea.

Y aquí hablamos de algo que influye mucho. Y como dije.. hay muchas manera de resolverlo. A mi de entrada se me ocurren dos:

A. Un TObjetList (por ejemplo) que guarda la lista de tus objetos.
Código Delphi [-]
ObjList1.Add(TTuObjeto);

B. Un clase propia que ofrece los métodos necesarios, ofreciendo un adaptador que mantiene la lista.

Código Delphi [-]
TUnaClase = class
private
  Lista: TObjectList;
...
end;

De modo que se consigue por ejemplo:

Código Delphi [-]
UnaClase.AgregarAlgo(Algo: TAlgo);

Y su implementación podría ser algo como:

Código Delphi [-]
function TUnaClase.AgregarAlgo(Algo: TAlgo): integer;
begin
  // ...
  result := Lista.Add(Algo);
  // ...
end;

Siendo en este caso TAlgo aquella clase que tienes... pero claro... si en realidad es un record... esto habría que modificar...

Sugiero una correcta leída de la ayuda de Dephi, del uso del buscador de los foros y una explicación precisa de tus necesidades/problemas/dudas.

Y con respecto al tema del TDataSet, si es una "tabla en memoria". Nuevamente invito a hacer una búsqueda en los foros. Ya se ha hablado bastante sobre el tema.

Espero que se me haya entendido.
Los maestros podrán explicar mejor y dar otras alternativas.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 16-03-2008 a las 22:53:46.
Responder Con Cita
  #4  
Antiguo 16-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
si logre entender la mejor opcion que puedes tener es la tabla en memoria, yo utilizo TKBMemTable, faciles de utilizar y no debes perder tanto tiempo reinventando la rueda...
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 16-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Entonces, entre Argentinos se entienden??
La explicacion parece que esta Caño.
Saludos
Responder Con Cita
  #6  
Antiguo 16-03-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por eduarcol Ver Mensaje
si logre entender la mejor opcion que puedes tener es la tabla en memoria, yo utilizo TKBMemTable, faciles de utilizar y no debes perder tanto tiempo reinventando la rueda...
Muy cierto Eduardo, con tener un TDataSet bastaría.
Ambos sabemos que añadir clases puede conducirnos a reinventar la rueda, y añade más ruido al sistema.
PabloZZZ debe examinar bien que es lo que debe hacer, si es solo un "ABM" de los datos tenemos muchas alternativas, que con poco código se consigue hacer las cosas.

Si el uso de las clases permiten reducir el impacto del ruido y aportan mayor utilidad (funcionalidad) para abordar los requisitos consideraría su uso.

En fin, creo que mi ejemplo demuestra parte de la reinvencion de la rueda.
PabloZZZ debes hacer un mayor análisis.

Cita:
Empezado por Caral Ver Mensaje
Hola
Entonces, entre Argentinos se entienden??
La explicacion parece que esta Caño.
Saludos
Cuando leí esa palabra dije, este es Argentino. Y si, nosotros sólos nos entendemos.. jeje... (aunque a veces no).
No se si será un Caño, pero como dije antes: demuestra muchas cosas:
1. La falta de análisis del problema.
2. El grave peligro de hacer más de la cuenta, o incluso... hacer menos de la cuenta.

PabloZZZ no es que haya sido malo, es que con tan escasos datos que aportas, mucho no podemos ayudar.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 16-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Perdona Delphius, pero esta pregunta no la entiende nadie, solo un Argentino.
Para mi no tiene ni pies ni cabeza, esta falta de informacion y no especifica practicamente nada, por eso me parece que tu respuesta debe de estar Caño, por que si no quien Coño, lo entiende.
Saludos
Responder Con Cita
  #8  
Antiguo 23-03-2008
PabloZZZ PabloZZZ is offline
Miembro
 
Registrado: mar 2008
Posts: 20
Poder: 0
PabloZZZ Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje
En fin, creo que mi ejemplo demuestra parte de la reinvencion de la rueda.
PabloZZZ debes hacer un mayor análisis.

PabloZZZ no es que haya sido malo, es que con tan escasos datos que aportas, mucho no podemos ayudar.

Saludos,
Si.. lo que pasa es que mi análisis lo hago en base a los pocos componentes que conozco. Intenté utilizar las DevExpress que dicen que son buenisimas, pero a mi se me complica... pero es otro tema. Por favor, tené en cuenta que trabajo solo y mi unica ayuda son las listas de correo y los foros!

Es mi primer post, voy a tratar de mejorar.

Saludos.
Responder Con Cita
  #9  
Antiguo 23-03-2008
Avatar de walito
walito walito is offline
Miembro
 
Registrado: jun 2005
Posts: 121
Poder: 19
walito Va por buen camino
Si sabes usar record entonces no debe ser dificil.

Ejemplo de un record:
Código Delphi [-]
  TPersona = record
    edad: integer;
    nombre: string;            
    appelido: string;            
    direccion: string;
    telefono: string;
  end;

Ahora necesitarias un SETer y un GETer como para cargar y obtener datos.

Ejemplo de una clase.
Código Delphi [-]
unit MiClase;

interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;

type  
  TPersona = record
    edad: integer;
    nombre: string;           
    apellido: string;           
    direccion: string;
    telefono: string;
  end;  
  
  TListaPersonas = array of TPersona;  
  
type
  TMiClase = class(TObject)
  private
    contPersonas: Integer;
    listaPersonas: TListaPersonas;
  public
    constructor Create;
    destructor Destroy; override;
    procedure AddPersona(const edad: Integer; const nombre, apellido, direccion, telefono: string);
    function GetPersona(const position: Integer);
    procedure DelPersona(const position: Integer);
  end;


implementation

{
******************************** TMiClase *********************************
}
constructor TMiClase.Create;
begin
    inherited Create;
end;

destructor TMiClase.Destroy;
begin
    inherited Destroy;
end;

procedure TMiClase.AddPersona(const edad: Integer; const nombre, apellido, direccion, telefono: string);
begin
    Inc(contPersonas);

    SetLength(listaPersonas, contPersonas);

    listaPersonas[High(listaPersonas)].edad := edad;
    listaPersonas[High(listaPersonas)].nombre := nombre;
    listaPersonas[High(listaPersonas)].apellido := apellido;
    listaPersonas[High(listaPersonas)].direccion := direccion;
    listaPersonas[High(listaPersonas)].telefono := telefono;
end;

function TMiClase.GetPersona(const position: Integer): TPersona;
begin
  if (position >= Low(listaPersonas)) and (position <= High(listaPersonas)) then
  begin
      Result := listaPersonas[position];
  end;
end;

procedure TMiClase.DelPersona(const position: Integer);
begin

end;

end.

Te dejo para vos el DelPersona.

Espero te sirba mi clase improvisada y pido perdon por algun errror.

Saludos
Responder Con Cita
  #10  
Antiguo 23-03-2008
PabloZZZ PabloZZZ is offline
Miembro
 
Registrado: mar 2008
Posts: 20
Poder: 0
PabloZZZ Va por buen camino
Delphius! gracias por responder.

Cita:
Empezado por Delphius Ver Mensaje
1. PabloZZZ, ¿al final que és? Una clase o un record?
Va a ser un Record.

Cita:
Empezado por Delphius Ver Mensaje
De modo que se consigue por ejemplo:UnaClase.AgregarAlgo(Algo: TAlgo);Siendo en este caso TAlgo aquella clase que tienes... pero claro... si en realidad es un record... esto habría que modificar...
Si.. eso es lo que quiero hacer.. qué tengo que modificar?

Cita:
Empezado por Delphius Ver Mensaje
Sugiero una correcta leída de la ayuda de Dephi, del uso del buscador de los foros y una explicación precisa de tus necesidades/problemas/dudas.
Ok! sisis.. ya por lo menos se que tengo que leer sobre TObjectList.

Gracias!
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
Objetos C# Cheswar .NET 1 10-03-2008 16:13:27
Persistir una lista de objetos miguel_e Varios 6 08-02-2007 22:29:13
¿Mejor heredar de una Lista o mejor introducir la Lista en un campo? Jome OOP 8 24-11-2005 17:11:16
Una lista de Objetos en .NET bustio .NET 1 11-10-2004 15:23:08
Objetos jfontane Varios 1 04-07-2003 15:39:04


La franja horaria es GMT +2. Ahora son las 00:43:28.


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