Thema: Delphi VST und ADO

Einzelnen Beitrag anzeigen

generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#2

Re: VST und ADO

  Alt 22. Apr 2005, 13:03
du hast die vcl und den vst nicht verstanden...

FormActivate wird immer dann aufgerufen wenn die anwendung bzw. das formular den focus erhält. (dunkelblauber form titel bei w2k)
dort den tree zu initialisieren ist nicht das klügste.
jedesmal wenn wieder in die anwendung geswitcht wird (z.b. mit alt-tab), wird der tree initialisiert.
(es sei den du hast das gewollt, dann nehme ich das mit dervcl zurueck)
besser im onCreate

zum tree:
dieser gekommt gesagt wie gross die daten sind. (nodedatasize)
normal nimmt man dort record weil diese haben eine feste groesse.
in meinen projekte nehme ich objekte -> nodedatasize ist dann die groesse des pointer auf das objekt

jetzt gibt es mehrere möglichkeiten den tree zu füllen.
a)
du laeuft durch eine schleife so oft wie datensätze da sind und kopierst diese in ein passendes record oder in ein objekt und fügst diese dann mit addchild+daten hinzu.

deine load routine (loadcds) ist also irgendwie am ziel vorbei

b)
man baut die struktur zusammen und lässt dann die knoten per initnode füllen.
nur knoten die angezeigt werden werden dann auch initialisiert (geladen aus der datenbank).

methode b) hat einen grossen geschwindigkeitsvorteil.
wenn du rootnodecount angibst wird gleich der noetige speicherplatz (für die records) belegt.
geladen werden nur die die angezeigt werden.

egal welche methode du verwendest - du brauchst nur firecursors (readonly, forwardonly)
langsames cursorspringen mit locate, filter usw braucht man nicht.

im gettext gibt man eigendlich dann nun noch den record bzw obj aus (welches sich dann im speicher befindet).
langsame datenbankoperation führt man dort eigendlich nicht aus.

gruss
  Mit Zitat antworten Zitat