Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Tipos de Campos en StringList (https://www.clubdelphi.com/foros/showthread.php?t=58894)

Carmelo Cash 05-08-2008 17:17:22

Tipos de Campos en StringList
 
Hola Foro.
Tengo que usar StringList y no puedo asignar un campo tipo Memo.
al intentar guardar este tipo de campo de da error access violation address.
con lo otros tipos de campos va bién.


Otro tema acá mismo. ¿Donde puedo conseguir info sobre las StrList (Ordenar, filtrar, borrar, etc, etc? y/o algún ejemplo de trabajar las strlist como registros.

Gracias..

A continuación el código que escribí y que no anda el TMemo.


Código Delphi [-]
type

     tElemento = class(Tobject)
    Familia: string;
        Tipo: string;
        Valor1: integer;
        Observaciones: TMemo;

  end;

  tColeccion = class(tComponent)
    Lista: tStringList;
  private
    function GetCount: integer;
    function GetObjects(j: integer): tElemento;
    public
      constructor Create(AOwner: TComponent); override;
      destructor Destroy; override;
      property Count: integer read GetCount;
      property Objects[j:integer]: tElemento read GetObjects;
  end;

...
...

procedure TForm1.Button1Click(Sender: TObject);
var
oElemento:  tElemento;
begin
  oElemento := tElemento.Create;
  oElemento.Familia := edtClave.Text;
  oElemento.Tipo := edtTipo.Text;
  oElemento.Valor1 := StrtoIntDef(edtValor.Text,0);

  showmessage('pasará?');
  oElemento.Observaciones.Lines.:=MemoObservaciones.Lines;   // << acá no anda !!!!
  showmessage('pasó');

  ListaBase.Lista.AddObject(oElemento.Familia+oElemento.Tipo,oElemento.Observaciones);
  Button2Click(Sender);
end;

Caro 05-08-2008 17:27:02

Cita:

Empezado por Carmelo Cash (Mensaje 305815)
Tengo que usar StringList y no puedo asignar un campo tipo Memo.
al intentar guardar este tipo de campo de da error access violation address.
con lo otros tipos de campos va bién.

El TStringList solo acepta cadenas, es una lista de Strings.

Código Delphi [-]
  oElemento.Observaciones.Lines.:=MemoObservaciones.Lines;   // << acá no

Ahí yo veo un punto demas, ademas que no estas asignando al StringList.

Saluditos

Caro 05-08-2008 17:35:45

Cita:

Empezado por Carmelo Cash (Mensaje 305815)
Otro tema acá mismo. ¿Donde puedo conseguir info sobre las StrList (Ordenar, filtrar, borrar, etc, etc? y/o algún ejemplo de trabajar las strlist como registros.

strList :confused: nose sobre el strList, acabo de buscar en la ayuda y no hay nada al respecto, supongo te refieres a una lista de cadenas que es el StringList, que tiene ya sus metodos de ordenar, borrar, adicionar, buscar...

Si estoy equivocada y si existe el strList, ya me corregiran.

Saluditos

Carmelo Cash 05-08-2008 18:07:38

Si. tStringList
 
efectivamente es "tStringList "

Donde puedo conseguir info sobre las StringList (Ordenar, filtrar, borrar, etc, etc? y/o algún ejemplo de trabajar las StringList como registros.

Gracias

Caro 05-08-2008 18:16:14

El mejor lugar donde puedes conseguir información es en la ayuda de Delphi, escribe TStringList y veras las propiedades, metodos que tiene y con ejemplos.

Sobre esto "algún ejemplo de trabajar las StringList como registros", explica un poco mas esta parte.

Saluditos

Carmelo Cash 05-08-2008 18:28:22

Si:

En el código vemos que Elemento es un objeto. (sería el registro)
y
Familia, tipo,valor1 y Observaciones serían los campos.

Código Delphi [-]
     tElemento = class(Tobject)
    Familia: string;
        Tipo: string;
        Valor1: integer;
        Observaciones: TMemo;

Estoy muy mal?

Caro 05-08-2008 18:41:08

Hola de nuevo, entonces tu no necesitas una lista de cadenas sino una lista de Objetos, para lo cual puedes utilizar un TObjectList, mas o menos así.

Código Delphi [-]
 uses Contnrs
 ..........
 ListaTElemento : TObjectList;
 oElemento        :  TElemento;

 
  ..................
 
  Añadimos un item a nuestra lista
 
  oElemento:= TElemento.Create;
  oElemento.Familia := 'familia 1';
  oElemento.Tipo := '1';
  .......
  .......
  ListaTElemento.Add(oElemento);

Yo ya estoy de salida, seguro que alguien mas te ayuda.

Saluditos


La franja horaria es GMT +2. Ahora son las 07:21: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