AccessViolation if using THTMLTreeView on RDP

Hi Everyone,

I've a problem with the THTMLTreeView-Component.
I try a little explanation:
- I've an main-Form with the TreeView (v.1.3.2.0)
- In the TreeView there are some main-Nodes for grouping some elements,
  in the case I group dates by "today", "tomorrow", this week" and "this month".
- The main-Form creates an Thread and give Handles of the main-Form (Handle)
  and the main-Nodes (node.ItemId) to the Thread.
- The Thread takes some Info from the Datebase collect it, "decorate" it and do a "PostMessage"
  in a period of time the user can set.
- the postmessage have the main-Node-Handle for the Node and a Pointer to a "array of MyRecord"

I wonder that I can use the Pointer to the Record so the Main-Thread can use Variables from the Date-Thread,
but it works fine.
But if I connect to my PC via RDP (Windows Remote Desktop) any task on the TreeView throws an AccessVoilation.

Is there actual an known issue (or: "can you please have a look on this")?
If you want to, I can send an mini-Example where I have test this Problem!

Thanks for your time and afford and greetings from Papenburg,
  Gerit

---
My English can be bad so here the german "original":

Hi Zusammen,

Ich habe ein Problem mit der THTMLTreeView-Komponente.
Ich versuche mal das Problem zu beschreiben:
- Ich habe ein Main-Form mit einem TreeView (v.1.3.2.0)
- In diesem TreeView habe ich ein paar Haupt-Knoten die ich zum gruppieren brauche,
  in meinem Fall sind dies halt "Heute", "Morgen", Woche" und "Monat".
- Das Haupt-Formular erzeugt einen Thread und übregibt das Handle des Haupt-Formulars (Handle)
  und der Haupt-Knoten (node.ItemId) an diesen Thread.
- Der Thread sammelt und verarbeitet Daten aus einer Datenbank. Anschließend sendet er
  diese per PostMessage an das Hauptformular. Dies geschiet in einem Zeitabstand den der
  Benutzer einstellen kann.
- Das PostMessage erhält das Handle (ItemId) des Haupt-Knoten und die Daten,
  die eingetragen werden sollen. Diese Daten sind in einem (ich nenn es mal: ) "Array of MyRecord"
  und werden als Pointer übergeben.

Ich hab mich tierisch gefreut, dass die Daten tatsächlich ankommen obwohl die Daten ja im
Thread erzeugt werden, aber das Main-Formular kann die tatsächlich auslesen.
Alles läuft bestens.
Nur, sobald ich mich per RDP (Windows Remote Desktop) auf meinen Rechner schalte
erzeugt jeder Zugriff auf die Knoten des Tree-View eine Zugriffsverletzung.

Gibt es da aktuell ein bekanntes Problem zu (oder: "Könnt Ihr bitte mal einen Blick darauf werfen")?
Wenn Ihr wollt kann ich euch ein Minimal-Beispiel schicken, mit dem ich diesen Fehler
provozieren kann. Ist nur mit 2 pas- und 2 dfm-Dateien zu groß um es hier zu posten (meiner Meinung nach)!

Vielen Dank für die Mühe im Voraus und liebe Grüße aus Papenburg,
 Gerit

That is a known issue that is actually in the underlying VCL TTreeView. You'll experience the same problem when using a standard VCL TTreeView. When switching to RDP, the treeview is recreated and thus all nodes recreated and you can't rely on these pointers.

Hi,

thanks for your hint!
Do you or anyone have any idea on which way I can solve this problem?
Is there a workaround I havn't found?
Google-Search with "ttreeview rdp delphi" was not very helpful.
Even if this is not the right forum because it's not your fault! ;-)

Greetings from Papenburg,
 Gerit
---
My English can be bad so here the german "original":

Hi,

danke für den Tipp!
Haben Sie oder irgendjemand eine Idee wie ich das Problem lösen kann?
Gibt es einen Workaround, den ich nicht gefunden habe?
Die Google-Suche mit "ttreeview rdp delphi" hat keine Ergebnisse gebracht.
Auch wenn das hier vielleicht das falsche Forum ist, schließlich ist
dass dann nicht mehr eure Schuld! ;-)

Liebe Grüße aus Papenburg,
 Gerit

Sorry, I do not have an example implementation of a solution but I think that instead of directly managing the node references, you'd need to lookup the node instance based on a tag value for example.