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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 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. |