StringList - como criar um stringlist multidimensional e ordenar os registros da lista

Top  Previous  Next

// Veja como criar um stringlist multidimensional e ordenar os registros da lista

 

Type

  TRegistro = Class

     Nome     : String;

     Telefone : String;

     Cidade   : String;

  End;

 

 

//==============================================================================

// Adiciona um registro ao String List

//==============================================================================

Procedure AddRecord(Lista:TStringList; strNome, strTelefone, strCidade:String);

Var RecNum : Integer;

Begin

  Lista.AddObject(strNome,TRegistro.Create);

  RecNum := Lista.Count-1;

  With TRegistro(Lista.Objects[RecNum]) do Begin

     Nome     := strNome;

     Telefone := strTelefone;

     Cidade   := strCidade;

  End;

End;

 

procedure TForm1.Button1Click(Sender: TObject);

var Lista : TStringList;

    x     : integer;

begin

  Lista := TStringList.Create;

 

  // Adiciona 7 registros à lista

  AddRecord(Lista,'Joao','1','Belo Horizonte');

  AddRecord(Lista,'Ana','2','São Paulo');

  AddRecord(Lista,'Iris','3','Rio de Janeiro');

  AddRecord(Lista,'Zilda','4','Curitiba');

  AddRecord(Lista,'Bety','5','Salvador');

  AddRecord(Lista,'Silva','6','Osasco');

  AddRecord(Lista,'Marcia','7','Niteroi');

  Lista.Sorted := True;

 

  // Mostra os dados num TMemo

  For x := 0 to Lista.Count-1 do Begin

      Memo1.Lines.Add ( TRegistro(Lista.Objects[x]).Nome + ' ' +TRegistro(Lista.Objects[x]).Telefone+ ' ' +TRegistro(Lista.Objects[x]).Cidade );

  End;

 

  // Destroi os objetos de cada registro

  For x := 0 to Lista.Count-1 do Begin

     Lista.Objects[x].Destroy;

  End;

 

  // Destroi a lista

  Lista.Free;

end;