AGB  ·  Datenschutz  ·  Impressum  







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

VirtualTreeView bearbeiten

Ein Thema von mdx · begonnen am 6. Jun 2011 · letzter Beitrag vom 7. Jun 2011
Antwort Antwort
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#1

AW: VirtualTreeView bearbeiten

  Alt 6. Jun 2011, 15:53
"Normalerweise" geht das so:
Der Thread stellt eine Änderung im Fortschritt fest. Also will er den Daten des dazugehörigen Knoten das sagen (entweder kennt der Thread den Knoten oder der Knoten den Thread).

Dann holt man sich die Daten des Knotens und ändert darin die Variable, die den Fortschritt speichert.

Wenn dann irgendwann (vielleicht durch ein Tree.Repaint) das OnGetText-Event aufgerufen wird, gibt man den Fortschritt zurück und der User sieht ihn.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
mdx
(Gast)

n/a Beiträge
 
#2

AW: VirtualTreeView bearbeiten

  Alt 6. Jun 2011, 16:33
Dann holt man sich die Daten des Knotens und ändert darin die Variable, die den Fortschritt speichert.
Genau das ist mein Problem

How can I do this?
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#3

AW: VirtualTreeView bearbeiten

  Alt 6. Jun 2011, 16:50
TV.GetNodeData(Node)

Ich denke dein Problem ist die Verknüpfung zwischen Thread und Knoten. Oder?
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
mdx
(Gast)

n/a Beiträge
 
#4

AW: VirtualTreeView bearbeiten

  Alt 6. Jun 2011, 18:30
TV.GetNodeData(Node)

Ich denke dein Problem ist die Verknüpfung zwischen Thread und Knoten. Oder?
Genau
Zum Beispiel müsste ich aus der Zeile eine Spalte die Unique ist auslesen und anhand dessen Rückgabe die aktuelle Zeile verändern lassen
Ich dachte dabei einfach daran z.B den aktuellen Timestamp mit in die Tabelle zu schreiben und dann im Thread auszulesen (anhand der ID in der Stringlist und dessen vergleich) und dann sozusagen machen node := 3; oder so ähnlich, wobei das eigentlich das Problem ist, wie ich node zuweisen kann auf eine bestimmte Zeile
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#5

AW: VirtualTreeView bearbeiten

  Alt 6. Jun 2011, 20:19
Grundsätzlich hat Stevie Recht. Aber bis wir auf dem Niveau sind, "krauten" wir einfach mal so weiter.

Wenn ich dich richtig verstanden habe, hast du doch eine Klasse TEntry.
Nun gibt es 2 Varianten:
  1. Du erweiterst die Klasse TEntry um ein Feld, in dem du den Thread referenzierst. So kannst du z.B. alle Knoten durchgehen, die Daten holen und kommst auf diese Weise an den Thread.
  2. Du "merkst" dir im Thread, welchen Knoten du in ihm abarbeitest. Dann kannst du bei einer Fortschrittsänderung die Daten des Knotens ändern.

Ich finde Variante 2 kommt deinen Bedürfnissen ziemlich nahe.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: VirtualTreeView bearbeiten

  Alt 6. Jun 2011, 20:39
Grundsätzlich hat Stevie Recht. Aber bis wir auf dem Niveau sind, "krauten" wir einfach mal so weiter.
Nen Datenobjekt zu bauen und das an Node.Data zu hängen ist nu echt keine Raketenwissenschaft
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#7

AW: VirtualTreeView bearbeiten

  Alt 6. Jun 2011, 20:53
Nen Datenobjekt zu bauen und das an Node.Data zu hängen ist nu echt keine Raketenwissenschaft
Ach so ... das haben wir ja schon ... wenn ich es richtig verstehe, hat er schon ne Klasse TEntry, die genau das macht.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

AW: VirtualTreeView bearbeiten

  Alt 6. Jun 2011, 17:50
"Normalerweise" geht das so:
Der Thread stellt eine Änderung im Fortschritt fest. Also will er den Daten des dazugehörigen Knoten das sagen (entweder kennt der Thread den Knoten oder der Knoten den Thread).
"Idealerweise" benutzt man dann ein Datenobjekt und/oder ein Callback. Ansonsten hat der Thread ne Abhängigkeit auf ne visuelle Komponente oder umgekehrt -> beides nicht wünschenswert. Beispielweise, wenn du mal den Fortschritt des Threads in eine Datei schreiben willst oder in der Konsole ausgeben willst.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:27 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