Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 26-02-2009
Bauhaus1975 Bauhaus1975 is offline
Miembro
 
Registrado: may 2005
Ubicación: Málaga
Posts: 135
Poder: 22
Bauhaus1975 Va por buen camino
Hola Roman, gracias por tu respuesta.

Por cierto, he visto que había un post igual al mío después de publicar. Y tú mismo lo habías respondido, pero se detalla usar TObjectList (no sé si me trae algún beneficio).

Bueno, voy al grano. Tengo algunas dudas todavía, sin duda es falta de práctica con el lenguaje.

De momento intento hacer esto:
Código Delphi [-]
type
    TItem = record // NOTA: he cambiado el tipo de item a TItem
                campo1 : double;
                campo2 : double;
            end;
    TLista = TLIST; // nótese el cambio de tipo
var
    lista : TLista; 
begin
 
// Así creamos la lista:
lista := TList.Create;
 
// Así añadimos elementos
lista.Add(item); // Siendo item una variable de tipo 'TItem'
 
// Así ordenamos por campo 1, gracias a las funciones debajo definidas
list.Sort(@compararCampo1);
 
// Así ordenamos por campo 2, gracias a las funciones debajo definidas
list.Sort(@compararCampo2);
 
// Aquí definimos las funciones de ordenación (una por cada campo que necesite ser ordenado)
 
function compararCampo1(Item1, Item2: Pointer): Integer;
begin
  if TItem(Item1).campo1 > TItem(Item2).campo1 then
    result := 1
  else if TItem(Item1).campo1 < TItem(Item2).campo1 then
    result := -1
  else
    result := 0;
end;
// y la otra para ordenar por campo2
function compararCampo2(Item1, Item2: Pointer): Integer;
begin
  if TItem(Item1).campo2 > TItem(Item2).campo2 then
    result := 1
  else if TItem(Item1).campo2 < TItem(Item2).campo2 then
    result := -1
  else
    result := 0;
end;

¿Voy bien encaminado?
Ahora bien, para acceder a los datos tengo problemas con el 'Cast' de tipos, trato de hacer:

Código Delphi [-]
item := TItem(lista.Items[i]);
// Obteniendo el error de 'invalid typecast'

y no consigo evitar el error...
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Ordenar un array Aldaya Varios 2 27-11-2007 09:45:00
Ordenar array ???? burasu Varios 6 15-02-2007 20:39:16
Encontrar un registro determinado. alfredosg19 Conexión con bases de datos 3 20-06-2005 21:09:49
Borrar un dato determinado de un Array. alfredosg19 Varios 5 24-03-2005 10:05:17
Ordenar un array de records Feñiz OOP 7 04-02-2005 08:19:28


La franja horaria es GMT +2. Ahora son las 07:23:30.


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