C++ Builder 2009 Fehler beim TTreeView Kopieren
-
Ich möchte einen TreeView auf einen anderen kopieren (zumindest deren Baumstruktur). Da ich derzeit mein Projekt vom c++ Builder 2006 auf C++ Builder 2009 umstelle (und 2010 schon geplant ist), stoße ich dezeit auf das folgende Problem:
Die Codezeilen haben beim 2006er wunderbar funktioniert:tree=new TTreeView(MainClass->ProjectScreen);
file=new TMemoryStream();
MainClass->ProjectScreen->TreeView->SaveToStream(file);
file->Seek(0,soFromBeginning);
tree->LoadFromStream(file);
delete file;Dabei ist "tree" der neue TreeView. Im alten Compiler hat es funktioniert. Nun geht es auch ohne Programmfehler, doch wird der Baum so scheint es Fehlerbehaftet kopiert. Es gibt keine Laufzeitfehler, aber der Zielbaum hat nur ein TopItem Knoten und alle anderen Fehlen. Auch ist der Name des Top-Knoten nur noch aus dem Anfangsbuchstaben bestehend. Eine Lösung wäre sicher ein manueller Kopiervorgang, aber es ist nicht die beste Lösung. Auch die Probe die Daten in eine Datei zu exportieren und dann wieder zu importieren rufen das gleiche Problem hervor. Auch die Updates 4 haben daran nichts geändert...
hat Jemand ein ähnliches Problem gehabt oder gibt es externe Kopier-Codes dafür? Ich habe leider nichts gefunden im Netz!
-
Ich finde deine Lösung über Stream zu kopieren sehr umständlich.
Wiso nicht einfach per Assign zuweisen ?
TreeViewNeu->Items->Assign( MainClass->ProjectScreen->TreeView->Items );
-
Danke für den Hinweis. Hatte es zwar vorher schon mit einem Assign des ganzen TreeViews probiert, das scheiterte aber. So geht es jetzt. Komisch ist es dennoch und nicht zu erklären, weshalb es über den Stream nicht mehr geht...
-
Der Fehler deutet auf die Umstellung von ASCII nach Unicode hin...