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?

VirtualStringTree: Dynamisches Array in Klasse verwenden?

Ein Thema von 100nF · begonnen am 24. Okt 2011 · letzter Beitrag vom 2. Nov 2011
Antwort Antwort
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#1

AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?

  Alt 24. Okt 2011, 19:46
Korrekt, es ist eine Liste von Pointern auf deine Daten. Du erzeugst wie gewohnt deine Objekte und fügst Sie per .Add hinzu und kannst später per Items[index] draufzugreifen. So kommst Du dann an deine Daten ran.
Lars
  Mit Zitat antworten Zitat
100nF

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

AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?

  Alt 24. Okt 2011, 21:06
Naja das Problem ist dann aber dass diese Daten nicht mit den TTeil-Daten zusammen abgespeichert und geladen werden. Das müsste ich dann "von Hand" machen, was irgendwie auch nicht sehr elegant ist. Und ausserdem ist es wieder eine Fehlerquelle mehr...

Die Einkaufsinformationen sollten wenn möglich schon auch direkt mit den TTeil-Eigenschaften abgespeichert und wieder geladen werden.

Ich dachte das ist doch bestimmt keine grosse Sache, aber so langsam bin ich da nicht mehr so zuversichtlich
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?

  Alt 24. Okt 2011, 21:23
Daten und GUI sollte man IMMER voneinander trennen. Stell Dir nur mal vor, Du willst/sollst die Daten in sechs Monaten anders präsentieren. Dann müsstest Du entweder alles neu erfinden oder einen unsichtbaren VST im Hintergrund mitlaufen lassen...

Aus Erfahrung wird aus zusammengehörenden Daten ein Record und aus diesem Record bald eine Objektklasse, damit der Record auch etwas intelligenter wird. Die Instanzen dieser Klasse hast Du dann entweder in einem Array (=schneller sequentieller Zugriff) oder in einer Liste (= Add/Delete/Sort komfortabler). Das Data vom VST ist dann immer nur ein Pointer auf eines dieser Objekte.

Hoffe, das hilft.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
100nF

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

AW: VirtualStringTree: Dynamisches Array in Klasse verwenden?

  Alt 24. Okt 2011, 22:19
Ja im professionellen Bereich wird das wohl ein wichtiges Kriterium sein, dass GUI und Daten strikte getrennt sind. Aber ich denke für ein kleines Privatprojekt das einfach sein Zweck erfüllen soll kann man da auch eine Ausnahme machen

Die VST-Komponente bietet da halt schon sehr viel Komfort:
  • Speichern und Laden aller Datensätze mit wenigen Zeilen Code
  • Einfaches Erstellen von Unterknoten, welche auch automatisch wieder richtig geladen werden
  • Änderungen in der GUI wirken sich automatisch auch auf die "Datenbank" aus
  • Integrierte Filter- und Suchfunktion
  • Einflussnahme auf die grafische Darstellung ganz einfach und umfangreich

Also zum Darstellen der Daten will ich keine andere Komponente verwenden. Und wenn ich sie schon zum darstellen nehme, warum dann nicht auch gerade für die Datenverwaltung, wenn es doch auch viel einfacher ist als eine separate Datenbank?

Das "Richtige" für eine Bauteile-Verwaltungssoftware wäre ja wohl eine echte Datenbank. Das finde ich dann aber schon sehr mühsam, alle Datensätze immer zwischen Datenbank und VST hin- und herzuschieben. Wie gesagt, es soll ja nur ein kleines Privatprojekt werden...

Ausserdem lässt sich ja auch eine Export-Funktion relativ leicht programmieren, so könnte man die Datensätze wenigstens in einem gescheiten Format abspeichern, falls das mal notwendig sein sollte.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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
Ein Therapeut entspricht 1024 Gigapeut.

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

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

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
44.378 Beiträge
 
Delphi 12 Athens
 
#7

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)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:26 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