AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 15:02

Parameter dieser Suchanfrage:

Suche in Thema: Nodes einer VirtualStringTree hinzufügen - aber schneller!
Suche alle Beiträge, die von "Aviator" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 20 von insges. 20 Treffern
Suche benötigte 0.001s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Naja. Jeden das Seine. Aber gerade dieses rumgecaste macht es doch erst unübersichtlich. Das fällt ja bei den Generics weg. Lediglich beim Instanziieren und bei der Deklaration findet man ein solches Konstrukt TObjectList<TMyDataType>. Und dafür kann man sich dann noch einen eigenen Type anlegen und schon ist alles schön übersichtlich und man muss den Datentyp auch nur noch an einer Stelle im...
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Ich glaube da hast du irgendwo noch einen Denkfehler in deinem Code. An der Klasse wird es so wie die aufgebaut ist und so wie du es sagst nicht liegen.

    Ich vermute eher, dass da doch mit dem Init und so noch nicht so richtig funktioniert. Aber ohne mehr SourceCode oder eine ganze Unit wird das sehr schwer dir da weiterzuhelfen.

    Genaugenommen haben MemoryLeaks ja auch nix mehr mit dem...
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Sorry. Hatte den Kommentar übersehen. In dem Fall wäre der SourceCode deiner erzeugten Klasse hilfreich. Ich befürchte aber das da irgendwas beim Verschieben der Objekte in eine andere Liste passiert.
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Wie erzeugst du deine ObjectList?

    Wenn du folgendes machst, dann brauchst du gar nichts freizugeben. Das macht die Liste dann für dich. Anders sieht es aus wenn du dem Constructor als Parameter ein False mitgibst.

    procedure CreateList();
    begin
    MeineObjektListe := TObjectList.Create(); // Create hat einen optionalen Boolean Parameter OwnsObjects der standardmäßig true ist
    end;
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Ohne SourceCode ist das reine Spekulation. Wenn du den noch hast, dann stell ihn mal hier rein. Bei Gelegenheit schau ich (oder die anderen) dann mal drüber. Wird ja nichts extrem kompliziertes sein denke ich.

    Die andere Frage wäre jetzt, ob das nicht egal ist. Es läuft ja jetzt. ReportMemoryLeaksOnShutdown gibt dir auch keine Meldung aus? Wenn nicht, dann ist alles gut.

    Und beachte auch...
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Doch klar wusste ich das. :lol:
    Ohne mich jetzt größer darzustellen als ich bin, aber ich glaube es gibt keine Funktion des VST die ich nicht kenne. Ich arbeite mittlerweile schon seit einigen Jahren mit der Komponente und habe schon sehr viele Werke damit vollbracht. :-D

    Und ja: Mit dem setzen des CheckTypes und des CheckStates liegst du richtig. Das musst du jetzt (wie vorher auch) jeder...
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Super! :thumb:

    Welche Checkboxen? :shock:

    Möglicherweise wurde seit deiner letzten Version in den TreeOptions etwas verändert und du musst noch einen zusätzlichen Haken setzen. Ich gehe mal davon aus, dass du die Checkboxen vor den Nodes meinst mit denen du diese auswählen kannst.
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Ich würde mal sagen ja. Bei einer anderen Anwendung bei der ich sehr viele Daten aus einer SQLite Datenbank lade habe ich den Effekt zwar nicht, aber solange alles freigegeben wird, ist da alles in Ordnung.

    Zur Kontrolle kannst du in deiner DPR Datei mal die Zeile ReportMemoryLeaksOnShutdown := True; einfügen. Dann erhälst du nach dem Beenden deines Programms ein Fenster in der MemoryLeaks...
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Hallo Jim,

    vertauscht ist da nichts. Das ist schon alles richtig so. In der Version WITHCARDINAL habe ich in NodeData^ nur den Index des Objektes in der TObjectList. Folglich muss ich bei GetText auf das Object in der TObjectList mit dem Index NodeData^ zugreifen.

    Ich hatte mit den Compilerschaltern nur zeigen wollen, dass man entweder mit einem Index ODER mit einem (Zeiger auf ein) Objekt...
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Ich sehe gerade, dass ich das Projekt im Release Build hochgeladen habe. Habe die Buildkonfiguration nicht umgestellt. Daher funktionieren wohl auch die Breakpoints nicht (wie ich bereits in einem der vorherigen Beiträge erwähnt hatte).

    Stell mal die Konfiguration um indem du in der Projektverwaltung die Build-Konfiguration öffnest und dann doppelt auf Debug klickst. Siehe Bild im Anhang. Wenn...
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Wie DeddyH schon sagt ist TObjectList<T> in System.Generics.Collections deklariert. Wenn du aus TObjectList<TMyDataClass> eine reine TObjectList machst ist das zwar nicht direkt falsch, aber du musst dann an jeder Stelle auf das passende Objekt casten. Durch die Generics hast du eben den Vorteil, dass du direkt die Elemente vom richtigen Typ zurück bekommst.
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Weiß jetzt leider nicht welche Delphi Version du hast. Könntest du bei Gelegenheit mal in deinem Profil hinterlegen.

    Aber hast du auch die Build Konfiguration auf Debug und nicht auf Release stehen? Wie wird die Zeile/der Breakpoint nach dem Compilieren angezeigt? Ist er blau oder grün? Blau bedeutet, dass er angesprungen wird (sofern keine Bedingung im BreakPoint hinterlegt ist). Grün heißt,...
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Ja natürlich werden dann auch die Nodes gelöscht wenn der Tree freigegeben wird, das ist ja klar. Das wäre ja sonst ein Fehler in der VirtualTreeView Komponente. :shock:

    Nur es hat sich für mich so angehört, dass der Speicherverbrauch bei der Benutzung nicht sinkt wenn er Nodes löscht oder eine neue Ansicht laden will. Eventuell hat er ja auch das Event falsch implementiert oder ist mit seinen...
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Hallo zusammen,

    ich habe mal ein kleines Beispiel zusammengestellt das Wahlweise 100.000 oder auch 1.000.000 Objekte und dementsprechend genauso viele Nodes erzeugt. Zusätzlich wird das ganze noch minimalistisch mit GetTickCount protokolliert damit man mal eine grobe Vorstellung hat wie lange so etwas dauert.

    Ich hoffe das Beispiel hilft dir/euch beim besseren Verwalten eurer Nodes und...
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Löschst du denn auch die Nodes mit vst.Clear(). Ansonsten kann auch nichts freigegeben werden. Setz doch mal einen Breakpoint auf die erste Zeile in deinem OnFree Event. Hält der Debugger dort überhaupt an?
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 6. Okt 2016
    Lies dir mal Beitrag #4 durch. Dort erklärt jaenicke wieso das so ist. :stupid:
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 5. Okt 2016
    Du machst ja scheinbar jetzt folgendes:

    procedure TForm1.LoadNodes();
    var
    NodeData: PNodeData;
    Node: PVirtualNode;
    begin
    Node := vst.AddChild(nil);
    NodeData := vst.GetNodeData(Node);
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 5. Okt 2016
    Wenn du RootNodeCount setzt, dann wird das vst.AddChild() überflüssig. Vorher solltest du natürlich (wie auch bei AddChild()) vst.Clear aufrufen. Der Code den du dann in deiner Funktion ausführst die AddChild aufruft wird dann in das OnInitNode Event verlagert. Dort wird dann pro Node die entsprechende NodeData gesetzt. Habe aktuell kein Beispiel zur Hand, werde dir aber morgen früh eins...
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 5. Okt 2016
    3 Sekunden für 100.000 Nodes sind doch noch sehr lange finde ich. Es kommt natürlich auch darauf an, wo du deine Informationen zum Füllen der Klasseninstanzen herbekommst.

    Ich würde dir aber empfehlen, dass über RootNodeCount zu machen. Dann werden nämlich nur die Nodes initialisiert die aktuell angezeigt werden. Alle Children bspw. erst dann, wenn du sie aufklappst.

    Wenn du dazu noch ein...
  • Forum: Programmieren allgemein

    AW: Nodes einer VirtualStringTree hinzufügen - aber schneller!

     
      by Aviator, 5. Okt 2016
    Dann musst du umstellen. Setze den RootNodeCount des Trees auf den gewünschten Wert und benutze die Events OnInitNode() und OnInitChildren(). Beispiele kann ich aktuell nicht machen. Erst so in 2 Stunden wieder.

    Lies dir auch mal den großen Kommentar zu AddChild() durch den Mike Lischke drüber geschrieben hat. Die Funktion sollte man eigentlich nicht verwenden.


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=Aviator&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=190454
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 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