![]() |
Re: StringGrid in Treeview zeigen
Liste der Anhänge anzeigen (Anzahl: 3)
Hier ist das Beispiel :
Bin für hilfe dankbar... |
Re: StringGrid in Treeview zeigen
OK. Ich habs. Wie schon vorgeschlagen, wird der letzte eintrag wird immer seperat behandelt...
|
Re: StringGrid in Treeview zeigen
Hallo,
Zitat:
StringGrid.Rows ist vom Typ TStrings, der vor der Übergabe an die Funktion zu einen String zusammengesetzt wird, dieser String wird dann innerhalb der Funktion wieder aufgedröselt. Änder doch die Funktion so ab das StringGrid.Rows direkt übergeben werden kann. Außerdem könnte "case AddType of..." aus der Funktion überflüssig sein. |
Re: StringGrid in Treeview zeigen
Da ich in den ersten zwei spalten jeder zeile andere Infos hab, Hab ich die Rows-Funktion schon rausgenommen. Die AddType hab ich mitlerweile auch rausgenommen, trotzdem braucht das programm ne viertel stunde zum laden...
Ansonsten läufts super... |
Re: StringGrid in Treeview zeigen
Hallo,
ein viertel Stunde, das dauert eindeutig zu lange. :shock: Wieviel Einträge sind es denn 1000, 2000 oder eher 100000? Werden BeginUpdate und EndUpdate in Deinem Code genutzt? Wie sieht denn jetzt die abgespeckte Version der Funktion und deren Aufruf aus? Wenn man da nichts mehr verbessern kann bietet es sich an nur die erste Ebene der Nodes bei der Initialisierung in das TreeView zu laden und die weiteren Ebenen erst auf Anforderung, also wenn der User einen Node expandiert. Zip doch mal die Daten aus dem StringGrid(am besten als csv oder ähnlich) sowie Deinen aktuellen Code und poste sie hier, dann kann man auf der Grundlage eventuell einen performanteren Vorschlag machen. |
Re: StringGrid in Treeview zeigen
weiter oben hatte ich das programm schon als download eingetragen. Ist jedoch nicht mehr auf den neusten stand. Im StringGrid sind 350 zeilen zu 62 spalten (ungefähr). Jede zelle gib einen Index aus der in einer Datenbank mit 2700 zeilen ausgesucht werden muss...
|
Re: StringGrid in Treeview zeigen
Liste der Anhänge anzeigen (Anzahl: 2)
Die Daten im StringGrid sind die Selben wie in der beigefügten Datenbenk (lines). Jeder Eintrag aus der Datenbank "Lines" ist ein Index, dessen StringWert in der 2.Datenbank "City" (Passwort = HausBau) gesucht werden muss. Im StringGrid sind demnach anstelle der Index-Werte die StringWerte.
|
Re: StringGrid in Treeview zeigen
Hallo,
Zitat:
Da werden Daten aus der Datenbank in ein verborgenes StringGrid geschrieben um sie dann an ein TreeView zu übergeben :gruebel: >> siehe Kommentar
Delphi-Quellcode:
TreeView1.Items.BeginUpdate;//vor der Schleife = ok
TreeView1.Items.Clear; for z := 0 to DKStringGrid4.RowCount - 2 do begin If StrToInt(DKStringGrid4.Cells[0,z]) = ComboBox1.ItemIndex+ 1 then begin i := 2; For i := 2 to StrToInt(DKStringGrid4.Cells[1,z])+1 do begin CityTable.Locate('Index', DKStringGrid4.Cells[i,z] ,[]); Str1 := CityTable.FieldByName('City').AsString; Str1 := Str1 +' ('+CityTable.FieldByName('Station').AsString+')'; s := s + Str1+ #09; Application.ProcessMessages; //imho überflüssig end; AddTreeNodePathDupIgnore(TreeView1,s,#09,ReNode,AddSort); s := ''; TreeView1.Items.EndUpdate; //Innerhalb der Schleife ??? Application.ProcessMessages; //imho überflüssig end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 Uhr. |
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