AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Treeview friert beim Sortieren fest

Offene Frage von "thomasdrewermann"
Ein Thema von thomasdrewermann · begonnen am 13. Sep 2006 · letzter Beitrag vom 27. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#1

Treeview friert beim Sortieren fest

  Alt 13. Sep 2006, 16:17
Hallo liebe wissende,

ich habe auf meinem Formular einen TreeView mit etwa 7000 Einträgen. Wenn ich den Sortiertyp nun während der Laufzeit auf stText umstelle friert mir mein Listview fest. In dieser Situation ist allerdings keine Methode beim OnCompare Ereignis hinterlegt. Hinterlege ich nun folgende Methode in dem OnCompare-Ereignis,:
Delphi-Quellcode:
Application.ProcessMessages;
Compare := AnsiStrIComp(Pchar(Node1.Text), PChar(Node2.Text));
sortiert mein Programm den Inhalt des Listviews sehr fix. Allerdings hört es damit nicht mehr auf. Die Routine OnCompare wird immer wieder angesprungen.

Ich habe es auch schon mit der CustomSortProc versucht. Es lief auf das selbe Ergebnis heraus.

Kann mir jemand helfen?

Diese Links habe ich schon abgegarst:
http://www.delphipraxis.net/internal...ct.php?t=67837
http://www.delphipraxis.net/internal...ct.php?t=48913
http://www.delphipraxis.net/internal...ct.php?t=23649
http://users.iafrica.com/d/da/dart/z.../TreeView.html

Danke!

Gruß
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Treeview friert beim Sortieren fest

  Alt 13. Sep 2006, 17:13
Hallo,

wie es im letzten Link steht, auch BeginUpdate/EndUpdate gemacht ?


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#3

Re: Treeview friert beim Sortieren fest

  Alt 14. Sep 2006, 09:22
Hallo Heiko,
ja habe ich, allerdings werden die Einträge in meinem TreeView dann dauerhaft ausgeblendet, obwohl ich EndUpdate nach den Customsort geschrieben habe. Er hängt also die ganze Zeit in der CustomSort-Prozedur. Darum führt er den EndUpdate -Befehl der darunter steht erst garnicht aus.
Hat jemand noch eine Idee?

Gruß
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Treeview friert beim Sortieren fest

  Alt 14. Sep 2006, 09:31
Ich verstehe ehrlich gesagt nicht, wieso Du in der customSort-Prozedure ein 'Application.ProcessMessages' eingebaut hast. DAS könnte die Listview durcheinanderbringen.

Weiterhin ist eine ListView einfach nicht dafür gemacht, 7000 Einträge aufzulisten. Im Ernst, wer scrollt die schon durch?
Dazu solltest Du eine Desktop-'Datenbank' verwenden, wie z.B. Access oder ein einfaches Textfile. Die ADO-Komponenten unterstützen dich dabei, die können auch mit einfachen Textdateien umgehen. Der zugehörige Provider ist auf jedem Windows-System installiert.

Dann noch ein TDBGrid und das sollte schon Einiges bewirken. Sortieren macht ADOD von haus aus, und das auch noch verdammt schnell. Wenn dir das TDBGrid nicht reicht, such mal nach Alternativen. Die JVCL-Komponentensammlung ist sehr mächtig, und sollte auf keinem PC fehlen. Dort ist bestimmt auch was Brauchbares für Dich.

Steht da nicht 'TreeView'? Ähhhh.....

Da gibt es aber auch TDBTreeViews, eventuell auch in der JVCL. Ansonsten wäre eine TVirtualTreeView einen Versuch wert.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#5

Re: Treeview friert beim Sortieren fest

  Alt 14. Sep 2006, 09:39
Hi,

soweit ich es richtig gesehn habe sortiert die Methode CustomSort nur die oberste Ebene des Treeviews. Das sind bei mir nur etwa 600 Einträge. Das sollte doch kein Problem darstellen odeR?

Gruß
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Treeview friert beim Sortieren fest

  Alt 14. Sep 2006, 09:54
Hallo,

hast du das ProcessMessages nun raus ?

Delphi-Quellcode:
X.BeginUpdate;
try
  DoSort;
finally
  X.EndUpdate;
end;
Als Sortierung wird Quicksort benutzt,
das sollte also auch bei 7000 Einträgen kein Problem sein.

Hast du vielleicht noch irgendwine anderes Ereignis des Treeviews angezapft
(OnChange oder so ?).
Kommentiere doch mal komplett alles aus.

Eine sinnvolle Alternative ist Virtual TreeView (einfach im Netz "virtual treeview Lischke" suchen).


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#7

Re: Treeview friert beim Sortieren fest

  Alt 14. Sep 2006, 10:16
Hallo,

da Auskommentieren probiere ich gerade mal eben aus. Das virtual Treeview kann ich nicht nutzen, weil ich Delphi 3 benutze und es erst ab Delphi5 funktioniert, wie ich gelesen habe.

Gruß
thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#8

Re: Treeview friert beim Sortieren fest

  Alt 14. Sep 2006, 10:19
Hallo,

nach dem Auskommentieren von allen anderen Sortier-Bezogenen Sachen und Application.ProcessMessages friert mein Programm sofort nach drücken von sortieren ein.

Gruß
thomas
Sport ist mord...
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Treeview friert beim Sortieren fest

  Alt 14. Sep 2006, 11:52
Gutttt,

oder besser, schlecht ;(

Pack jetzt mal nur 2/3 Einträge rein, dann kannst du das Compare mal prüfen
mit nem Breakpoint.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#10

Re: Treeview friert beim Sortieren fest

  Alt 14. Sep 2006, 15:55
Hi,

ich konnte das Problem nun lösen. Ich habe mich bei Torry nach einer alternative umgesehen und dann das THETreeview gefunden. Es ist von TTreeView abgeleitet und um einiges schneller und stabiler.

Danke für deine Hilfe!

Gruß
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:54 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