![]() |
Pointer speichern
Hi @ll,
folgender record:
Delphi-Quellcode:
Das ganze ist eine array of TProjectItem. Wie ihr euch sicher denken könnt, gehört das treeitem zu eine TreeView.
TProjectItem = record
DateiName: TFileName; treeitem: TTreeNode; onform: TForm; end; Zum Problem: Ich will den Array und eine TreeView (die, auf die treeitem verweist) speichern. Wie geht das? Kann man einen Pointer einfach so speichern? Die Speicheradresse ist doch bestimmt von Programmstart zu Programmstart verschieden, oder? Oder hat jemand eine bessere Idee? Am liebsten würde ich nach ini speichern, weil das leichter zu debuggen ist (da kann man sich mla mit 'nem Texteditor ansehen, was rausgekommen ist...). Aber wenn das zu kompliziert ist, nehme ich auch gerne einen TFileStream oder sonstwas anderes. |
Re: Pointer speichern
Wenn ich das richtig verstehen gehst du es falsch an. ;)
Nicht das ProjectItem sollte sein TreeItem kennen... Du solltest dir eher einen TreeView ableiten an den du eine Collection von ProjectItems hängen kannst. Du willst ja nicht das TreeView sondern die ProjectItems speichern. Wie du so eine mehrdimensionale Struktur piepeeinfach speichern und auslesen kannst hatte Jens schon ein paar mal demonstriert. Wenn du die ![]() In Verbindung mit maximovs Template dürfte dir das a) viel Arbeit ersparen und b) eine ziemlich saubere und hübsche Lösung ermöglichen. ;) Der Collection-Ableitung solltest du noch ein paar Events verpassen (besser wäre wohl eine Suche zum Notifier/Notifiable-Prinzip), damit alle verbundenen Controls über Änderungen von den ProjectItems erfahren... (Du willst ja sicher nicht immer alles "zu Fuß" synchronisieren ;) ) btw: Wenn du den OO-Weg gehen willst, kannst du das Wort "record" ganz schnell vergessen. Denn mit Records musst du immer alles zu Fuss machen. :mrgreen: Records sind nur dumme Datenblöcke, die a) nix von ihrer Umgebung wissen und b) nicht miteinander interagieren können... |
Re: Pointer speichern
Sry, ich glaube, das einzige, was ich verstanden habe, ist das ich nichts verstanden habe... :cry:
Ok, ich habe mitbekommen, dass ich mir was von TreeView ableiten soll. aber obwohl ich schonmal darüber nachgedacht habe, bin ich zu dem Schluss gekommen, dass ich dazu nicht in der Lage bin. So nebenbei: Das Programmm ist on den Grundtruckturen fertig. Also das mit dem syncron halten usw. klappt schon einwandfrei, nur wenn man das Programm schließt, ist eben die mehr oder weniger mühsam zusammengeklcikte TreeView mit dem array of record leider wieder weg. Für Treeview nach ini habe ich sogar was in der CodeLib gefunden, nur mit diesem Pointerproblem... |
Re: Pointer speichern
hmm...
Ich hoffte, dass alleine die Möglichkeiten des Collection streamings überzeugend wären... :gruebel: Wirklich detailiert auf die angesprochenen Dinge einzugehen kann etwas aufwendig sein. Wenn ich morgen abend die Zeit mitbringe bereite ich vielleicht was vor. ;) Jetzt habe ich da, ehrlich gesagt, keinen Bock. :P Wenn du noch etwas mehr von der Struktur der Dokumente und Projekte erzählst könnte ich das ja als Grundlage nehmen ;) |
Re: Pointer speichern
Ich glaube, was ich mache ist wesentlich einfacher aufgebaut als du denkst.
Nebenbei wir der array wohl in den seltensten Fällen über 20 items haben. Ok, meinetwegen können große Homepageprojekte auch mal 50 Seiten umfassen. Aber auch das ist meiner Meinung nicht viel. Und wenn dann doch irgendwer mal ein 1000-Seitiges Projekt mit meinem Editor bearbeiten will, dann dauert das laden des Projektes eben mal 5 Sekunden, das fände ich jetzt auch nicht schlimm... Ich bin natürlich immer offen für neu *neugieriger Blick* und mich würde das durchaus interessieren, aber der Aufwand muss in irgeneinem angemessenen Verhältnis zur Zielsetzung sein ;-). Ich habe nur leider das Gefühl du überschätzt meine Delphikenntnisse :-(. Aber ich sehe schon, es wird wohl schwer mir zu helfen, ohne Ahnung, wie das ganze drumherum aussieht. Ich werde wohl das releasedatum vorziehen und meinen Editor noch diese Woche (vielleicht schon heute) veröffnetlichen. Also mit qt natürlich. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 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