Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Sort mit vst und Abgleich (https://www.delphipraxis.net/77594-sort-mit-vst-und-abgleich.html)

Prototypjack 21. Sep 2006 17:18


Sort mit vst und Abgleich
 
Hallo,
Nun, zunächst möchte ich mal den Titel ein wenig erläutern:
Ich arbeite hier an einem relativ grossen Projekt(Einem Player um genau zu sein). Die visuelle Playlist besteht aus einem VirtualStringTree, die interne ist eine TObjectList.
Eigentlich wird alles durch die interne Playlist geregelt nur eben die Anzeige der Songs nicht.
Ich wollte es eigentlich so handhaben, dass durch einen Headerclick in der visuellen Playlist die Einträge sortiert werden. Dies würde dann auch super klappen, aber ich müsste es ja _nach_ dem sortieren von dem VirtualStringtree mit der internen Playlist abgleichen, und genau das bereitet mir Probleme.

Hat jemand eine Idee wie man das anstellen könnte?
Oder ist mein Denkansatz komplett falsch?
Danke
Gruß,
Max

RobertDorn 21. Sep 2006 17:34

Re: Sort mit vst und Abgleich
 
ich würde der visuellen Playlist jeden Eintrag nen Index Wert zuweisen der auf dem entsprechenden Eintrag in der internen Playlist entspricht. und der internen Playlist kannste ja noch jeden Eintrag den entsprechenden Index von der visuellen Playlist hinzufügen.
Macht Winamp glaube auch so. intern scheint die Playlist von winamp auch unberüht zu sein. also wenn ma zb nen track in der playlist verschiebt.

Wenn bei deiner Visuellen Playlist jedes Item am besten noch ne eigene Tag Eigenschaft hat kannste da ja den Index speichern.


Ich hoffe ich konnte mich verständlich ausdrücken
:roll:

Prototypjack 21. Sep 2006 17:40

Re: Sort mit vst und Abgleich
 
Woha,
Irgendwie kann ich dir wirklich nicht ganz folgen. Das heisst, ich denke ich weiss was du meinst aber ich habe keine Plan wie ich das am besten realisiere.
Bei genauerem Nachdenken fällt mir allerdings auf: Ich weiss wirklich nicht genau was du meinst :mrgreen:
Gruß,
Max

Edit: Eigentlich ist mein Problem nur, dass ich nicht feststellen kann wann die visuelle (in Form eines Vsts) fertig mit dem Sortieren ist. Sobald ich da benachrichtigt werden würde, kann ich alles, wenn auch umständlich, abgleichen.

Gausi 21. Sep 2006 17:55

Re: Sort mit vst und Abgleich
 
Ich mach es bei meinem Player genau umgekehrt: Bei nem Headerklick sortiere ich die Objectlist neu, leere die Anzeige komplett und fülle sie mit der sortierten Objectlist neu.

RobertDorn 21. Sep 2006 18:00

Re: Sort mit vst und Abgleich
 
:mrgreen: ok... dann nochmal *g*


also.. du hast ja ne visuelle playlist, zur darstellung nur. und ne interne.

die interne würde ich garnicht erst sortieren lassen. die bleibt wie sie ist.
jedes Item von deiner visuellen Playlist musste irgend wie (zb. bei der tag-eigenschaft, oder benutzt das image-index wenn du keine images für die items nimmst) den Index zu dem Item von deiner internen Playlist speichern.

VisPlaylistItem.Tag := IntPlaylistItem.index;

und umgekehrt:

IntPlaylistItem.Tag := VisPlaylistItem.index;

so kannst du immer, egal wie du deine visuelle playlist sortierst, auf das Item deiner Internen Playlist zugreifen. Und umgekehrt natürlich.
Musst halt beim sortieren in der internen Playlist die Tags neuschreiben, weil sich da ja der Index zu dem vis.PlaylistItem ändert...

sorry... aber irgend wie weiß ich grad echt nicht wie ich das besser erklären soll

:gruebel:

Prototypjack 21. Sep 2006 18:21

Re: Sort mit vst und Abgleich
 
Hallo!
Ja, ich denke nun ich weiss was du meinst!
Aber da gibt es auf meiner Seite ein Problem, da die interne Playlist nur deswegen zum Leben erweckt wurde, da die Visuelle nicht immer im Speicher ist, bzw. öfter mal komplett gelöscht wird.

Ich konnte mein Problem nun lösen, nennt mich ruhig einen Idioten :mrgreen:
Ich dachte bis eben, die Sort-Routine wird intern aufgerufen wenn der Header geklickt wird, dies ist jedoch nicht der Fall, wie mir mein eigener Code im OnHeaderClick Ereignis gezeigt hat ;)

Danke auf jedenfall nochmal für die Antworten.
Gruß,
Max


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz