Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ListView bzw. StringList sortieren... (https://www.delphipraxis.net/82-listview-bzw-stringlist-sortieren.html)

Christian Seehase 10. Jun 2002 20:29

Moin Yheeky,

Du hast Dir doch schon eine CustomSortProc für den Listview gebaut. Nenn die doch, z.B. SortProcListView. Nun erstellst Du Dir noch eine für die StringList und nennst die dann SortProcStringList.
Wie gesagt, der Name der Prozedure spielt keine Rolle, solange der Aufbau der Funktion stimmt.
Oder hab' ich da jetzt Dein Problem missverstanden?

Yheeky 10. Jun 2002 20:39

Moin Chrischi :wink:

Die Procedure habe ich mir aus dem FAQ vom SwissDelphiCenter "geklaut" :D
Klar könnte ich mir eine andere Funktion bauen, will nur fragen, ob vielleicht jemand schon den passenden Code für mich parat hat.

Gruß Yheeky

Christian Seehase 10. Jun 2002 21:30

Moin Yheeky,

da hätte ich noch eine Idee.
Ich gehe dazu mal davon aus, dass es zu jedem ListView Item auch genau einen korrespondierenden String in der StringList gibt.
Du könntest, da Du ja mehrere Spalten hast, dem jeweils ersten SubItem ein Object anhängen, und zwar den korrespondierenden String. Dann würden die StringList zwar nicht sortiert werden, aber der Zusammenhalt zwischen den Zeilen im ListView und der StringList wäre gewährleistet:

Code:
  // Anhängen des Strings
  ListView1.Items.Add;
  ListView1.Items[ListView1.Items.Count-1].SubItems.AddObject('TEXT',TObject(slMyStringList[0]));

  // Auslesen des Strings
  sStringVariable := String(ListView1.Items[ListView1.Items.Count-1].SubItems.Objects[0]);
ABER:
  1. Die [0] müsste natürlich jeweils durch den entsprechenden Wert ersetzt werden.
  2. Ich weiss nicht, ob das AddObject bei einem ListView überhaupt funkioniert, denn bei TMemo/TRichEdit ist bei den Lines ist diese Methode zwar auch vorhanden, aber leider nicht "mit Leben" gefüllt, sprich da passiert nichts.

Yheeky 10. Jun 2002 22:13

Danke Christian!

Ich werde es morgen mal testen und dir dann bescheid geben.

Gruß Yheeky

Yheeky 11. Jun 2002 10:52

Also in einer ListView passiert bei mir auch irgendwie nichts :cry:

Hat noch jemand eine Idee?

Gruß Yheeky

Yheeky 12. Jun 2002 17:47

Ich habe gerade eben die Idee bekommen, wie ich dem ein oder anderen mein Problem ein wenig näherbringen kann. Also, ich möchte genau das machen, was ich mit Outlook Express machen kann. Ich kann die Mails nach Datum, Betreff, Empfänger,... ordnen. Ich kann außerdem jedem Eintrag den Status "Gelesen" bzw. "Ungelesen" zuweisen. Ein nicht gelesener Beitrag wird fett markiert - macht sich also dadurch bemerkbar. Genau das möchte ich auch machen...bei Outlook Express ist das ja auch so, dass der Status erhalten bleibt, auch wenn ich die ListView sortiere...dann muss das doch irgendwie funktionieren :?

Ich hoffe, mir kann jetzt noch jemand helfen!

Gruß Yheeky

Darty 12. Jun 2002 18:31

Zitat:

Zitat von Yheeky
Also, ich möchte genau das machen, was ich mit Outlook Express machen kann. Ich kann die Mails nach Datum, Betreff, Empfänger,... ordnen. Ich kann außerdem jedem Eintrag den Status "Gelesen" bzw. "Ungelesen" zuweisen. Ein nicht gelesener Beitrag wird fett markiert - macht sich also dadurch bemerkbar. Genau das möchte ich auch machen...bei Outlook Express ist das ja auch so, dass der Status erhalten bleibt, auch wenn ich die ListView sortiere...dann muss das doch irgendwie funktionieren

Hi Yheeky,

wie man dieses Problem mit dem Listview lösen kann, weiss ich in Moment leider auch nicht. Nur ich wollte sagen, dass ich vor paar Wochen auf Torry glaube ich Kompos gesehen habe, die das Aussehen wie beim Outlook bringen kann. Denke aber dass Du wohl trotzdem ListView verwenden willst. Ich kann ja nochmal nach der Kompo suchen wenn DU möchtest.

MathiasSimmack 12. Jun 2002 18:42

Du kannst zusätzlich zu den "normalen" Infos auch Objekte speichern. Das klappt bei Listboxen, Comboboxen und natürlich auch bei ListViews. Ein Beispiel habe ich gerade nicht parat, aber das läuft dann auf´s Typecasting hinaus, bei dem du die einzelnen Eigenschaften eines Objektes abfragen und dann z.B. in der Liste anzeigen lassen kannst.

(Also ein Beispiel hätte ich schon, aber wäre für einen TreeView. Das Prinzip ist zwar das selbe, aber ich will keine Verwirrung stiften. Noch nicht.)

Lange Rede, kurzer Sinn: neben den üblichen Dingen kannst du in diesen Eigenschaften auch ein "Gelesen"-Flag unterbringen, über das du die Anzeige in der Liste regelst. Das sollte dann auch unabhängig von der Sortierung sein, so dass die Ausgabe deinem gewünschten Ergebnis entspricht.

Christian Seehase 12. Jun 2002 18:50

Moin Mathias,

wirf doch bitte mal einen Blick auf mein Beispiel zum Anhängen von Objecten an ListView Items weiter oben in diesem Thread. Eventuell habe ich da ja einen Fehler eingebaut, denn laut Yheeky, geht's bei ihm so nicht. :?
Mit ListView.Items hab' ich das noch nicht gemacht. Beim TreeView klappt's bei mir hingegen allerbest.

@All
Wo wir gerade das Thema Objekte an Items von StringListen anhängen haben:
Mit RichEdit.Lines und Memo.Lines geht's nicht.

Yheeky 12. Jun 2002 20:04

Hi @all...

habe den Code gerade nochmal ausgetestet und ich muss zu meiner Schmach sagen, dass der Code einwandfrei funzt :lol:
Da muss mir wohl beim ersten Mal ein Fehler unterlaufen 8) ...Sorry.

Danke an alle!

Gruß Yheeky


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz