AGB  ·  Datenschutz  ·  Impressum  







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

Pointer speichern

Ein Thema von yankee · begonnen am 18. Apr 2005 · letzter Beitrag vom 19. Apr 2005
Antwort Antwort
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#1

Pointer speichern

  Alt 18. Apr 2005, 23:05
Hi @ll,
folgender record:
Delphi-Quellcode:
  TProjectItem = record
    DateiName: TFileName;
    treeitem: TTreeNode;
    onform: TForm;
  end;
Das ganze ist eine array of TProjectItem. Wie ihr euch sicher denken könnt, gehört das treeitem zu eine TreeView.
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.
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: Pointer speichern

  Alt 18. Apr 2005, 23:24
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 dpCollectiondpCollection nimmst und alles als plain dfm speicherst hast du ein mächtigeres und sogar leserlicheres Format als Ini.
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.
Records sind nur dumme Datenblöcke, die a) nix von ihrer Umgebung wissen und b) nicht miteinander interagieren können...
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#3

Re: Pointer speichern

  Alt 18. Apr 2005, 23:34
Sry, ich glaube, das einzige, was ich verstanden habe, ist das ich nichts verstanden habe...
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...
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Pointer speichern

  Alt 19. Apr 2005, 00:31
hmm...
Ich hoffte, dass alleine die Möglichkeiten des Collection streamings überzeugend wären...
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.
Wenn du noch etwas mehr von der Struktur der Dokumente und Projekte erzählst könnte ich das ja als Grundlage nehmen
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#5

Re: Pointer speichern

  Alt 19. Apr 2005, 09:23
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.
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  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 16:43 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