AGB  ·  Datenschutz  ·  Impressum  







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

StringGrid in Treeview zeigen

Offene Frage von "DavidKlimas"
Ein Thema von DavidKlimas · begonnen am 3. Mai 2007 · letzter Beitrag vom 5. Mai 2007
Antwort Antwort
Seite 2 von 2     12   
DavidKlimas

Registriert seit: 24. Sep 2006
Ort: Arlon, Belgien
71 Beiträge
 
#11

Re: StringGrid in Treeview zeigen

  Alt 3. Mai 2007, 19:32
Hier ist das Beispiel :

Bin für hilfe dankbar...
Angehängte Dateien
Dateityp: rar travelmore_-_admin.part03_111.rar (656,3 KB, 12x aufgerufen)
Dateityp: rar travelmore_-_admin.part02_748.rar (1,91 MB, 9x aufgerufen)
Dateityp: rar travelmore_-_admin.part01_941.rar (1,91 MB, 9x aufgerufen)
  Mit Zitat antworten Zitat
DavidKlimas

Registriert seit: 24. Sep 2006
Ort: Arlon, Belgien
71 Beiträge
 
#12

Re: StringGrid in Treeview zeigen

  Alt 3. Mai 2007, 20:59
OK. Ich habs. Wie schon vorgeschlagen, wird der letzte eintrag wird immer seperat behandelt...
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#13

Re: StringGrid in Treeview zeigen

  Alt 3. Mai 2007, 21:42
Hallo,
Zitat von DavidKlimas:
...das StringGrid hat mehrere Tausend einträge...
falls du meine vorgeschlagene Vorgehensweise mit der Funktion genommen hast würde ich das bei einer so hohen Zeilenanzahl noch optimieren.

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.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
DavidKlimas

Registriert seit: 24. Sep 2006
Ort: Arlon, Belgien
71 Beiträge
 
#14

Re: StringGrid in Treeview zeigen

  Alt 4. Mai 2007, 11:31
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...
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#15

Re: StringGrid in Treeview zeigen

  Alt 4. Mai 2007, 18:11
Hallo,

ein viertel Stunde, das dauert eindeutig zu lange.
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.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
DavidKlimas

Registriert seit: 24. Sep 2006
Ort: Arlon, Belgien
71 Beiträge
 
#16

Re: StringGrid in Treeview zeigen

  Alt 4. Mai 2007, 18:24
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...
  Mit Zitat antworten Zitat
DavidKlimas

Registriert seit: 24. Sep 2006
Ort: Arlon, Belgien
71 Beiträge
 
#17

Re: StringGrid in Treeview zeigen

  Alt 5. Mai 2007, 09:01
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.
Angehängte Dateien
Dateityp: rar city_338.rar (1,16 MB, 10x aufgerufen)
Dateityp: rar lines_709.rar (5,4 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#18

Re: StringGrid in Treeview zeigen

  Alt 5. Mai 2007, 22:45
Hallo,

Zitat von Lannes:
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.
hab mal deinen älteren Code überflogen.
Da werden Daten aus der Datenbank in ein verborgenes StringGrid geschrieben um sie dann an ein TreeView zu übergeben
>> 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;
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 20:08 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