Para ordenar un array dinámico (de tipo Array of…) no hay ningun método específico.
Cómo ordenar un array dinámico
Pego un ejemplo muy básico que ordena un array dinámico de tipo Array of THuman donde THuman es una clase con dos atributos. El código hace uso de un TStringList auxiliar y un método sort() para ordenar el array dinámico.
Type
THuman = Class
Public
Name: String;
Age: Byte;
Constructor Create(Name: String; Age: Integer);
End;
Constructor THuman.Create(Name: String; Age: Integer);
Begin
Self.Name:= Name;
Self.Age:= Age;
End;
Var
Human: THuman;
Humans: Array Of THuman;
List: TStringList;
Begin
SetLength(Humans, 3);
Humans[0]:= THuman.Create('David', 41);
Humans[1]:= THuman.Create('Brian', 50);
Humans[2]:= THuman.Create('Alex', 20);
List:= TStringList.Create;
List.AddObject(Humans[0].Name, TObject(Humans[0]));
List.AddObject(Humans[1].Name, TObject(Humans[1]));
List.AddObject(Humans[2].Name, TObject(Humans[2]));
List.Sort;
Human:= THuman(List.Objects[0]);
Showmessage('The first person on the list is the human ' + Human.name + '!');
List.Free;
End.
Andreu
Este código puede quedar mas elegante.
lite.3engine
Hola Andreu, gracias por participar.
Se trata de un ejemplo simple. Un código de partida para implementar tu propio código.
Igualmente, cualquier mejora es bienvenida, adjuntandola a este hilo.