PDA

Ver la Versión Completa : TObjectList.Sort duda


Lepe
21-03-2004, 15:43:50
Para el TObjectList, en la ayuda de delphi dice en el ejemplo del método Sort:

Sort Example

The following code sorts the objects in a list in alphabetical order based on their names. It assumes that the list contains only component references.
The CompareNames function performs the comparisons between objects in the list. The list is sorted when the user clicks a button.

function CompareNames(Item1, Item2: Pointer): Integer;
begin
Result := CompareText((Item1 as TComponent).Name, (Item2 as TComponent).Name);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
List1.Sort(@CompareText);
end;



Lo que está en rojo no debería ser "CompareNames" ¿?

Tal y como está no entiendo lo que hace, sin embargo, si fuese la direccion de la funcion CompareNames, si lo vería lógico.

Gracias Majo :)

Lepe
21-03-2004, 20:19:32
Despues de hacer varias pruebas y eliminar ciertos erores que no sabia a que santo venian....

Yo tenia razon. Juas he encontrado un bug en delphi :p :D

una cosita un tanto rara.... es que la funcion CompareNames, no puede ser un método de una clase. La puse solita en una unidad aparte, y así si me permitía compilar. Funciona de lujo.


PD: De nada Majo :p

marto
21-03-2004, 21:17:08
una cosita un tanto rara.... es que la funcion CompareNames, no puede ser un método de una clase. La puse solita en una unidad aparte, y así si me permitía compilar. Funciona de lujo.

Pues a mi me parece lógico. Si declaras la función como un método... como se accede a su direcció? a la de qué instancia? y si no hay ninguna?

roman
21-03-2004, 21:43:35
Nada más aclarar que esto no es un bug de Delphi sino tan sólo un error en la documentación... y de éstos hay muchos.

// Saludos