Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 18-09-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Y qué culpa tengo yo de que el ejemplo de la ayuda de Delphi tenga una pequeña errata, porque es lo que parece. Ahora, de la ayuda de Delphi este código que sí que compila, o sea, se puede hacer, perfectamente, como se dice en la ayuda.

Código Delphi [-]
unit Unit1;

interface

uses
  Forms, Classes, Controls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject;
     var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
  private
    FMiLista: TList;
  end;

var
  Form1: TForm1;

type
  TMiClase = class(TObject)
  private
    FNombreClase: string;
  public
    property NombreClase: string
     read FNombreClase write FNombreClase;
  end;

implementation

{$R *.dfm}

uses
  SysUtils, Dialogs;

function CompararNombres(item1, item2: Pointer): integer;
begin
  Result := CompareText(TMiClase(item1).NombreClase,
             TMiClase(item2).NombreClase);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FMiLista := TList.Create;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  FMiLista.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  unaClase, otraClase: TMiClase;
begin
  unaClase := TMiClase.Create;
  unaClase.NombreClase := 'Zaragoza';

  otraClase := TMiClase.Create;
  otraClase.NombreClase := 'Abecedario';

  FMiLista.Add(unaClase);
  FMiLista.Add(otraClase);

  FMiLista.Sort(@CompararNombres);

  for i := 0 to FMiLista.Count-1 do
  begin
    // Mostrará primero Abecedario y luego Zaragoza
    ShowMessage( TMiClase(FMiLista.Items[i]).NombreClase );
  end;
end;

end.

¿No?

La errata parece estar en el puntero a la función que se pasa como parámetro al método "Sort" de "Tlist":

Código Delphi [-]
List1.Sort(@CompareText);

Cuando debería ser:

Código Delphi [-]
List1.Sort(@CompareNames);
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 18-09-2006 a las 21:26:47.
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
TList Delphi rose Varios 4 08-05-2006 16:58:30
Uso del Objeto TList aromero OOP 10 21-10-2005 17:30:11
Problemas con TList arantzal .NET 2 09-12-2004 09:14:37
TList y TDBGrid juntos...? Carlos Claveria OOP 2 23-10-2003 16:53:29
TList HERNAN Varios 2 10-10-2003 03:47:59


La franja horaria es GMT +2. Ahora son las 09:20:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi