![]() |
AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?
Zitat:
|
AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?
Zitat:
Naja sonst mache ich es halt doch mit einer separaten Liste nur für die Einkaufsinformationen... Danke schonmal für die Antworten! mfg |
AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?
Das Problem ist eher, wenn du die Daten fest an eine Komponente bindest:
- wurde daran was verändert - gibt es diese Komponente nicht mehr - oder läßt sie sich nicht mehr insallieren (neues Delphi oder gar was Anderes, wie z.B. C#) das war's das mit den Daten (oder man muß versuchen sie zu konvertieren) PS: Geht etwas in deiner Speicherroutine schief, dann sind die Daten futsch. Ich vermute mal, daß du kein "sicheres" Speichern durchführst. (vielleicht sollte ich mal meinen entsprechenden FileStream hier hochladen) |
AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?
hi,
Zitat:
echt? Rate mal was folgendes für ne Ausgabe produziert:
Delphi-Quellcode:
Und dann die Erklärung: Du ermittelst mit SizeOf NICHT die Größe einer Instanz sondern die Größe des Pointers (!) der auf die Instanz zeigt! Von daher spielt es keine Rolle wie viele Eigenschaften/Methoden/Arrays deine Klasse hat - der Pointer hat immer 4 Bytes.... (keine Regel ohne Außnahme: Win64 Code ;-))
Memo1.Lines.Add(IntToStr(SizeOf(TForm)));
Memo1.Lines.Add(IntToStr(SizeOf(TMemo))); Memo1.Lines.Add(IntToStr(SizeOf(TStrings))); Und meine Vorredner haben natürlich Recht - Visualisierung und Datenhaltung sollten getrennt voneinander sein, d.h. Die Teile speicherst Du in einer ObjectList, die Du in einer Lade-Methode füllst und anschließend verwendest Du die Objectlist um die Instanzen in den Tree zu hängen. Grüße |
AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?
Ich nehme an, TTeil ist ein Record. In diesem Fall gibt SizeOf tatsächlich die Größe der Instanz an, weil potenziell Stack-Objekt.
|
AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?
Aus dem Ausgangspost:
Zitat:
|
AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?
Ups :angel2:
|
AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?
Kann ja mal vorkommen :zwinker:
|
AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?
OKay Okay...
jetzt weiss ich gar nicht mehr wie ich das ganze machen soll :shock: Ich habe im Programm jetzt schon 5 VST's das Speichern, Laden usw beigebracht und das war ja alles fürn A*** wenn ich die Daten nun separat abspeichern will :-( Oh mann... Ich weiss nicht was ich jetzt machen soll....Muss erstmal drüber nachdenken :) mfg |
AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?
So, also ich glaub ich weiss jetzt wie ich es mache :D
Für die Artikel und die Einkaufsinformationen nehme ich je eine dateibasierte Datenbank. Eine andere "Tabelle" brauch ich aber noch für die Kategorien, was nichts anderes als eine TreeView ist, natürlich mit Unterknoten usw. Dies mache ich aber dann doch mit dem VST weil dieser die richtige Struktur auch gleich mitspeichern und laden kann. Weil meine D2005 PE keine Datenbankkomponenten hat, hab ich die Gelegenheit auch gleich genutzt um mal Lazarus näher anzuschauen. Scheint eigentlich ganz ordentlich zu sein, nur halt schade dass es die JVCL-Komponenten nicht gibt...da wär so ein schöner DatenbankTreeView dabei gewesen xD naja immerhin den VST gibts für Lazarus. Also vielen Dank euch für die Antworten! Hat zwar nicht so einfach geklappt wie ich mir das erhofft habe, aber ist ja auch nicht so schlimm ;-) mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:27 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 by Thomas Breitkreuz