Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ShellListView - ComponentToString - fehlt da nicht etwas?! (https://www.delphipraxis.net/161595-shelllistview-componenttostring-fehlt-da-nicht-etwas.html)

internetnavigator 11. Jul 2011 16:42

ShellListView - ComponentToString - fehlt da nicht etwas?!
 
(Delphi XE)

Hallo zusammen :)
Ich sitze zurzeit an 'nem echten Problem und bekomme es einfach nicht gelößt.
Ich erarbeite zur Zeit einen Netzwerkclient, welcher mit anderen synchronisiert Ordner und Dateien über die TShellListView darstellt.

Die Verbindung hab ich ziehmlich einfach über Stringversand (TCP) realisiert. Nun dachte ich mir, dass es ganz praktisch wäre, wenn ich die ShellListView,
wenn sie ein Nutzer abändert, mit den anderen Clients immer als Instanz synchron halte, dann muss ich mich nicht um jede Eigenschaft einzeln kümmern.

Also wollte ich die Komponente übers Netzwerk als String verschicken. Erst die Komponente in einen String umsetzen und dann per TCP versende. Mit 'nem Memo oder 'nem Edit ist das auch kein Problem, die haben ihren Inhalt "bei sich". Wenn ich aber nun die ShellListView umsetze, dann bekomme ich zwar alle Eigenschaften, jedoch keinerlei angezeigte Ordner / Dateien: Das ganze sieht so aus:

Code:
object shList: TShellListView
  Left = 256
  Top = 8
  Width = 498
  Height = 401
  AutoRefresh = True
  ObjectTypes = [otFolders, otNonFolders, otHidden]
  Root = 'C:\'
  Sorted = True
  ReadOnly = False
  HideSelection = False
  TabOrder = 0
  ViewStyle = vsReport
end
'Root' und alles stimmt auch, nur fehlen die Items.
TShellListView ist von TCustomShellListView, welche von TCustomListView, IShellCommandVerb abgeleitet ist, ich habe also Zugriff auf die 'Item's.

Wie bekomme ich also den Inhalt mitgesendet?

Oder gibt es noch eine andere Möglichkeit eine Komponente vollständig in einen String (ein Stream würde auch gehen) umzusetzen, so dass man eine 1:1 Kopie erhält?

Lg :)

DeddyH 11. Jul 2011 16:48

AW: ShellListView - ComponentToString - fehlt da nicht etwas?!
 
Hilft Dir Read-/WriteComponent von TStream weiter?

jaenicke 11. Jul 2011 17:01

AW: ShellListView - ComponentToString - fehlt da nicht etwas?!
 
Bei einer ShellListView würde es mich auch extrem wundern, wenn das möglich wäre. Die jeweiligen Unterordner werden logischerweise erst beim Aufklappen gefüllt, sonst würde es viel zu lange dauern. Die können also niemals als Daten da sein.

Und auch die sichtbaren Knoten mappen ja nur auf den entsprechenden Knoten im Dateisystem. Den gibt es auf einem anderen Rechner aber nicht.

Deshalb sehe ich hier keinerlei Möglichkeiten das so sinnvoll umzusetzen wie du es dir vorstellst.

Du wirst die entsprechenden Daten schon selbst ermitteln und schicken müssen. Nebenbei geht das dann auch gleich viel schneller...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:32 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