FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
ordenar un TList
Tengo una clase TObject (miclase) definida con variables de distintos tipos y una lista (TList) de objetos "miclase".
¿Es posible ordenar esa lista de a cuerdo a una solo de esas variables de miclase (de tipo string)? |
#2
|
||||
|
||||
Hola,
Se me ocurre que derives una nueva clase de "TList" y añadas allí un método para realizar lo que precisas. No sé qué te parecerá... |
#3
|
|||
|
|||
Podría, pero pensé que ya lo había. De hecho esperaba que me mencionaras el método "Sort" de la clase pero la verdad es que no entendí como usarlo y la ayuda de delphi no me aclaró mucho y no funciona en mi caso por alguna razón qu edesconozco. Tal vez no sirva para eso.
|
#4
|
||||
|
||||
Hola,
Pues sí, revisando la ayuda (que no se me ocurrió antes, la verdad) se ve que "TList" cuenta con un método "Sort" que puede ayudarte. Hay un ejemplo y todo... Cita:
|
#5
|
|||
|
|||
Para usar el método Sort de TList, necesitas crear una función que devuelva un Integer y reciba como parámetros dos punteros:
Saludos... |
#6
|
||||
|
||||
Cita:
// Saludos |
#7
|
||||
|
||||
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.
¿No? La errata parece estar en el puntero a la función que se pasa como parámetro al método "Sort" de "Tlist":
Cuando debería ser:
Última edición por dec fecha: 18-09-2006 a las 21:26:47. |
#8
|
||||
|
||||
El ejemplo de la ayuda no compila porque el operador as no es aplicable.
// Saludos |
#9
|
||||
|
||||
Hola,
Vale, pero, tampoco compilaría aunque hicieras el "cast" como lo hago yo más arriba: porque el puntero no se pasa a la función correcta, y eso es una errata de la ayuda o me equivoco. Por otro lado todavía no tengo claro por qué el operador "as", como dices, no es aplicable... Desde luego, si quitamos eso y la posible errata el código que he expuesto compila y funciona como se espera. O me equivoco... Última edición por dec fecha: 18-09-2006 a las 21:49:47. |
#10
|
|||
|
|||
No aplica el operador as por que Pointer no es una clase, es solo un tipo de datos y este operador es un operador de clases.
Saludos... |
#11
|
||||
|
||||
Después de de la primera respuesta de elcigarra me disponía a hacer un ejemplito, algo sencillo, pero tuve que atender a otro asunto durante un rato. Cuando vuelvo le doy a "Recargar" y me encuentro con todo esto . Así no hay forma de responder, si no te das prisa te pisan la respuesta
|
#12
|
|||
|
|||
Bien dicen que "camarón que se duerme..."
|
#13
|
||||
|
||||
Hola,
Cita:
Cita:
Cita:
Por cierto, voy a ver si me preparo algo para cenar... y ceno... : D |
#14
|
||||
|
||||
Cita:
¿Hay que defender la ayuda de Delphi? // Saludos |
#15
|
|||
|
|||
Cita:
Saludos... |
#16
|
||||
|
||||
Hola,
Cita:
De hecho mi primera respueste fue que se implementase un método de ordenación en una clase derivada de "TList",... porque me parecía lo más lógico del mundo... claro, que, yo no contaba (sabía) que "TList" ya implementa un método "Sort". Ahora bien, ¿se trata de utilizar el método "Sort", verdad? Pues entonces, puede hacerse siguiendo la ayuda de Delphi aparte y/o a pesar del ejemplo. Lo demuestro arriba, ¿por eso quiero defender la ayuda de Delphi? Y ahora sí que me voy a cenar... por cierto... Última edición por dec fecha: 18-09-2006 a las 22:02:59. |
#17
|
||||
|
||||
Cita:
// Saludos |
#18
|
||||
|
||||
Hola,
Cita:
Ahora bien, siguiendo la ayuda... fijándose uno en el ejemplo... y dándose cuenta del posible error en este, todavía cree que hay que aprovechar el método "Sort" de la clase "TList", y así es que todo va bien, es decir, puede utilizarse sin problemas. Ahora bien, el código de Marcos y el que yo mismo he propuesto (siguiendo la ayuda de Delphi) sí que podrían compararse, a lo menos en cuanto a que ambos consigue el objetivo. ¿Tú con cuál te quedas Román? Y, sobre todo, ¿por qué con uno y no con otro? Edito: Ahora me doy cuenta de que no había mirado bien código de Marcos... ¡es el mismo que yo he propuesto! ¡es justo eso! Hum... me parece que he metido la pata y no sé bien cómo ni de qué manera, ¿o me equivoco? Decirme que no, por favor. Última edición por dec fecha: 18-09-2006 a las 22:32:05. |
#19
|
|||
|
|||
Bueno, mi ejemplo es precisamente la función que se le pasa al método Sort, ahora, tal vez me faltó especificar como mandar a llamar al método Sort usando la función creada con anterioridad...
Creo que de ahí un poco la confusión... Saludos... |
#20
|
||||
|
||||
Pues tú sabrás de qué hablas. Yo no
// Saludos |
|
|
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 |
|