![]() |
Tlist - Probleme
ALso ich bin dabei eine Liste mit mehreren Typen zu erstellen.
Und zwar: a) Name: String b) Date: Integer (jo, ich weiß) c) Size: Integer d) Std.: Byte Sinn des ganzen soll später sein, daß ich die Liste nach a, b ,c oder d aufsteigend oder absteigend sortieren kann. [sodaß immer Name2, Date2 und Size2 zusammen bleiben = ihr wißt, was ich meine?] Jetzt find ich in meinem Delphi Buch [Walter Doberenz,Delphi 6 Grundlagen und Profiwissen] nur eine vorgefertigte Lösung zu Tlist, bei der sich leider Anpassungs~ / Implementierungsschwierigkeiten [neues, leeres Proj.] zeigen. Gibt es irgendwo etwas verständliches? Kann ich Listen einfach so per Befehl sortieren? (Oder muß ich das sowieso coden = dann mach ich das mit Arrays.) Danke. |
Re: Tlist - Probleme
die Sortierung musst du fast immer coden, schließlich weiß eine TList die ja nur Pointer aufnimmt nicht was hinter den Pointern für eine Struktur liegt und kann somit auch nicht danach sortieren.
|
Re: Tlist - Probleme
du erstellst dir pro Datensatz ein Record und fügst einen Zeiger auf diesen record in die TList ein.
sortieren kannst du dann ganz einfach, indem du die Funktionen CompareText für das Sortieren von Strings Beispiel:
Delphi-Quellcode:
und
CompareText(record.nam, record.name);
CompareValue
Delphi-Quellcode:
nutzt.
CompareValue(record.nummer, record.nummer);
|
Re: Tlist - Probleme
ich hab da mal mein TList-Beispiel geupdated (tlistsort.zip)
(hatte das schon länger mal vor...) ![]() Gruß Frank |
Re: Tlist - Probleme
@computer-glossar.de: Anstelle eines Records und eines Pointers auf diesen Record kann er auch gleich ein Object nehmen. Ist nur eine Frage der Gewohnheit.
|
Re: Tlist - Probleme
halt, Stop!
ich wollte ne leichtere Anleitung zu Tlist. Das is ja noch komplizierter :D Danke natürlich. Aber gibt es da vielleicht einfache Codebeispiele oder ne richtig gute Seite, die das erklärt? war schon auf dsds Edit: was kann ich denn nehmen? |
Re: Tlist - Probleme
Schau Dir doch mal das
![]() der vorteil bei verwendung von TObject liegt unter adnderem darin, das du die enthaltenen daten auch innerhalb des objects weiter aufbereiten kannst usw. was halt mit objecten so alles geht. |
Re: Tlist - Probleme
äh, das macht es leider auch nicht einfacher.
Ich kann wohl rudimentäre Sachen in Dephi "programmieren" - aber das mit den Tlist ist mir noch fremd. Daher suche ich verständliche Anleitungen dazu. und das mit den Tlist-Objekten scheint mir noch komplizierter. (hab versucht zu verstehen, was diese object.pas und der Funktionsaufruf macht) mhh, gibts da nix einfacheres für Tlist? also, daß ich einfach
Delphi-Quellcode:
jeweils nach Name, Geb.-Datum Körpergröße oder Geschlecht sortieren kann?
_______Name____Datum_______Size_____Std
1 Jens 23.07.72 187 1 2 Marc 04.01.75 175 1 3 Tina 12.02.74 167 2 4 Jan 27.06.71 195 1 5 Elke 08.12.72 170 2 gibts da keine einfachere Möglichkeit? Vielleicht auch was richtig erklärendes (für Neuling verständliches Tutorial/pdf/page) zu Tlist? mir ist das mit den Pointern, Klassen und Records, die ich dann dazu bräuchte noch unklar. Noch verschwommener wird es, wenn es dann um das Sortieren gehen soll :I Auch wenn's bequem klingt - was es aber nicht ist, weil ich seit 1 Woche daran runmdokter - kann nicht jemand Beispielcode passend dazu schreiben, bitte? Oder wenigstens auf ne wirklich verständliche Anleitung verweisen? Danke auch für Eure bisherige Mithilfe! |
Re: Tlist - Probleme
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Jens,
statt der Delphi-Tags kannst du die Pre-Tags verwenden, wenn du dein Tabellen-Layout rüber bringen willst. Im Anhang eine kleine Demo für dein Sortierproblem. Grüße vom marabu |
Re: Tlist - Probleme
Ich kann Dir trotzdem das ObjectList-Template nur empfehlen. Lad Dir aus dem obigen link die objlist_tmpl.pas runter und versuchs mit dem Code:
Delphi-Quellcode:
Der Compiler ersetzt dann quasi _LIST_ITEM_ durch deine Object-Klasse und _LIST_ durch deine Listenklasse, wie handgetippt nur eben automatisch. Superpraktisch das :thumb:
unit DeineUnit;
interface uses Contnrs; type TEintrag = class(TObject) private FName : string; FDatum : integer; FSize : integer; FStd : integer; public property Name : string read FName write FName; property Datum : integer read FDatum write FDatum; property Size : integer read FSize write FSize; property Std : Integer read FStd write FStd; end; _LIST_ITEM_ = TEintrag; {$DEFINE TYPED_LIST_TEMPLATE} {$INCLUDE objlist_tmpl.pas} TEintragList = _LIST_; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz