Announcement

Collapse
No announcement yet.

TreeView zu langsam

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TreeView zu langsam

    Hallo,

    ich habe ein Treeview das aus einer Datenbank befüllt wird. Ich könnte zwar eine DBTreeview-Komponente nehmen, brauche aber Multiselect und das geht bei DBs nicht. D.h. ich erzeuge den Baum zu Fuß aus der Datenbank. Leider ist das sehr langsam.
    Eine Idee war: nur die oberste Ebene zu befüllen und bei Bedarf nachzufüllen, aber das geht nicht, da die Zweige zum Teil automatisiert selektiert werden (multiselect).
    Irgendwie muss ich das Befüllen beschleunigen (Die Bremse ist definitiv das Treeview).
    Kann mir da jemand helfen?

  • #2
    Verwendest Du auch BeginUpdate/EndUpdate

    Comment


    • #3
      Net oder Win32? Für Win32 lohnt ein Blick auf Mike Lischkes Virtual Treeview. Der ist kostenlos, gehört aber zu den besten und schnellsten am Markt.<p>
      Mari
      Schöne Grüße, Mario

      Comment


      • #4
        wieviele Elemente werden erzeugt und nutzt Du zur Sortierung die Eigenschaft Sort vom TreeView

        Comment


        • #5
          Hallo,

          BeginUpdate/EndUpdate nutze ich nicht, aber es ist beim Update ohnehin nicht zu sehen, ich teste es aber mal. Ich nutze Win32. Sort nutze ich nicht, es wird vorher in der Datenbank sortiert. Die Menge schwankt immer etwas, liegt aber meist zwischen 500 (selten) und 2000.

          Wo finde ich Virtual Treeview?

          Matthia

          Comment


          • #6
            http://www.lischke-online.de
            Schöne Grüße, Mario

            Comment


            • #7
              Hallo Matthias,

              ich kann mir nicht vorstellen, dass das TreeView hier die Ursache ist. Ich benutze das TreeView zum Beipiel zur Anzeige von Registry Keys und das geht sehr schnell (auch der HKEY_CLASSES_ROOT und der hat so einge Einträge). Als ich das Problem hatte, habe ich in den Programmcode das Festhalten der Zeitpunkte der einzelnen Schritte eingebaut. So bin ich auf den "Zeitfresser" gekommen. Bei mir war es die Sortierung. Ich habe dann SortType auf stNone gestellt und nach dem Eintragen einmal die Sortierung durchführen lassen. Seit der Umstellung gehts schnell.

              MFG
              Andr&#233

              Comment


              • #8
                Hallo,

                SortType steht bei mir auf stNone, ich sortiere vorher in der Datenbank. Ich werde aber die Zeitpunkte auch mal einzeln testen.
                Gruß Matthia

                Comment


                • #9
                  Hallo,

                  habe den Übeltäter gefunden:
                  Node:=Node.GetNext;
                  Das braucht sehr viel Zeit. Habe die Sache jetzt Rekursiv realisiert, es ist jetzt annehmbar.
                  Danke für die Hilfe.
                  Gruß Matthia

                  Comment

                  Working...
                  X