AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi VirtualStringTree: Dynamisches Array in Klasse verwenden?
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualStringTree: Dynamisches Array in Klasse verwenden?

Ein Thema von 100nF · begonnen am 24. Okt 2011 · letzter Beitrag vom 2. Nov 2011
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#11

AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?

  Alt 24. Okt 2011, 22:26
warum dann nicht auch gerade für die Datenverwaltung, wenn es doch auch viel einfacher ist als eine separate Datenbank?
Muß ja nicht unbedingt separat sein ... man könnte auch embedded nutzen
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (24. Okt 2011 um 22:39 Uhr)
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#12

AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?

  Alt 25. Okt 2011, 09:12
Muß ja nicht unbedingt separat sein ... man könnte auch embedded nutzen
Ja könnte man...aber da sehe ich dann keine grossen Vorteile mehr gegenüber der VST-Variante

Naja sonst mache ich es halt doch mit einer separaten Liste nur für die Einkaufsinformationen...

Danke schonmal für die Antworten!

mfg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#13

AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?

  Alt 25. Okt 2011, 09:36
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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#14

AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?

  Alt 25. Okt 2011, 09:44
hi,

Und genau da liegt jetzt mein Problem. Dem VST muss ja ganz am Anfang mal die Grösse zugewiesen werden:
VST_Teile.NodeDataSize := SizeOf(TTeil); So, und wenn nun mein TTeil plötzlich dynamisch wird, wird wohl diese Initialisierung scheitern.

echt? Rate mal was folgendes für ne Ausgabe produziert:

Delphi-Quellcode:
  Memo1.Lines.Add(IntToStr(SizeOf(TForm)));
  Memo1.Lines.Add(IntToStr(SizeOf(TMemo)));
  Memo1.Lines.Add(IntToStr(SizeOf(TStrings)));
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 )

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
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#15

AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?

  Alt 25. Okt 2011, 10:28
Ich nehme an, TTeil ist ein Record. In diesem Fall gibt SizeOf tatsächlich die Größe der Instanz an, weil potenziell Stack-Objekt.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?

  Alt 25. Okt 2011, 10:31
Aus dem Ausgangspost:
Zitat:
Delphi-Quellcode:
type
  TTeil = class (TComponent)
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#17

AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?

  Alt 25. Okt 2011, 10:59
Ups
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?

  Alt 25. Okt 2011, 11:02
Kann ja mal vorkommen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#19

AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?

  Alt 25. Okt 2011, 16:18
OKay Okay...

jetzt weiss ich gar nicht mehr wie ich das ganze machen soll

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
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#20

AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?

  Alt 2. Nov 2011, 17:11
So, also ich glaub ich weiss jetzt wie ich es mache

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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 05:19 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