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

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 17-07-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Vaya monstruos delphi estáis hechos... yo seguiré con lo mio: aconsejar leer la guía de estilo, con ese cumplo
No nos engañes...

Un par más a las que ya ha añadido ecfisa (he tomado su código como base):

(1) Es usando sólo el TStringList y utilizar el "formato" de Name=Value.
Pare ello están las propiedades Names y Values de TStrings.

Seguramente no es el más adecuado si tienes miles de registros.


Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
  str:string;
begin
  TipServ:= TStringList.Create;
  with qryTiposServicios do
  begin
    Open;
    while not eof do begin
       TipServ.Add(FieldByName('TIPO').AsString + '=' + FieldByName('DESCRIPCION').AsString);
      Next;
    end;
  end;

end;

procedure TForm1.btnShowClick(Sender: TObject);
var
  i: Integer;
  str:string;
begin
  Memo1.Clear;
  for i:= 0 to TipServ.Count-1 do begin
    Str := TipServ.Names[i];
    Memo1.Lines.Add(Str + ' --> ' + TipServ.Values[Str]);
  end;
end;

procedure TForm1.btnDestroyClick(Sender: TObject);
begin

  TipServ.Free;

end;

(2) La segunda es utilizando un Record. En este caso el Record tendría solo la descripción, ya que el Tipo lo añadimos como cadena en el TStringList, pero sería útil si en el record hubiera que almacenar más datos.


Código Delphi [-]

type

   // Añado los dos, qun que sólo haría falta 1, pero es ilustrativo por si
  // tuvieramos que almecenar más datos en el record
  RecordDesc = record
    Tipo:string;
    Descripcion:string;
  end;

  PRecordDesc = ^RecordDesc;
  
  procedure TForm1.FormCreate(Sender: TObject);
var
  MiStr:PRecordDesc;
begin
  TipServ:= TStringList.Create;
  with qryTiposServicios do
  begin
    Open;
    while not eof do begin
      New(MiStr);
      MiStr.Tipo := FieldByName('TIPO').AsString;
      MiStr.Descripcion := FieldByName('DESCRIPCION').AsString;

      // Añadirlo
      TipServ.AddObject(MiStr.Tipo, TObject(MiStr));
      // Siguiente
      Next;
    end;
  end;

end;

procedure TForm1.btnShowClick(Sender: TObject);
var
  MiStr:PRecordDesc;
  i:integer;
begin
  Memo1.Clear;
  for i:= 0 to TipServ.Count-1 do begin
    MiStr := PRecordDesc(TipServ.Objects[i]);
    Memo1.Lines.Add(TipServ[i] + ' --> ' + MiStr.Descripcion);
  end;
end;

procedure TForm1.btnDestroyClick(Sender: TObject);
var
  i: Integer;
  MiStr:PRecordDesc;
begin
  for i:= 0 to Pred(TipServ.Count) do begin
    MiStr := PRecordDesc(TipServ.Objects[i]);
    Dispose(MiStr);
  end;
  TipServ.Free;

end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
 



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
Listas dinámicas para almacenar objetos noob OOP 2 17-07-2012 11:34:19
Almacenar y recuperar archivos binarios en BD PostgresSQL con ADO y ODBC KATODO Trucos 4 01-09-2008 00:08:24
Liberar memoria de objetos y listas aggg63 OOP 1 13-02-2008 17:35:08
Manejo de Multi-Listas (listas de listas) DelphiRat OOP 4 03-07-2006 19:42:58
Cómo almacenar, editar y recuperar una archivo de imagen guardado en la base de datos JKM MS SQL Server 0 03-05-2006 22:29:41


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


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