AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Datenhaltung mit VirtualStringTree und Trennung der Businesslogik
Thema durchsuchen
Ansicht
Themen-Optionen

Datenhaltung mit VirtualStringTree und Trennung der Businesslogik

Ein Thema von jus · begonnen am 24. Mär 2019 · letzter Beitrag vom 2. Mai 2019
Antwort Antwort
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.291 Beiträge
 
Delphi 12 Athens
 
#1

AW: Datenhaltung mit VirtualStringTree und Trennung der Businesslogik

  Alt 26. Mär 2019, 13:58
Man braucht keine riesen Helferklassen im Hintergrund. Mein Beispiel ist das was man braucht, um seine Daten getrennt vom VST halten und managen zu können.
Natürlich kommen noch mehr Properties und Helferprozeduren hinzu. Je nachdem was man denn braucht. Aber das ist dann noch immer einfacher als mit den hier erwähnten Helferklassen.
Eben eben! Das hier landet letztendlich auch im VST. Da habe ich derzeit einen Record wo ein Pointer drin ist auf eine Objektinstanz. Im Grunde will ja der TE auch genau sowas machen. Wäre mit Generics ungleich einfacher.

Allerdings, wenn man mit dem VST noch nicht viel Erfahrung hat, kann einen das völlig erschlagen, dieses Featuremonster. Egal ob mit Records oder Generics. Man kann auch viele Vorteile zunichte machen, zum Bsp. wenn man iterativ Add() statt ChildCount verwendet. Wobei letzteres wiederum tricky ist bei der Initialisierung, wenn man keine indizierten Listen hat (z.B. TDictionary).
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: Datenhaltung mit VirtualStringTree und Trennung der Businesslogik

  Alt 26. Mär 2019, 14:12
Ganz einfach erklärt kann man sich das so vorstellen.

Man stelle sich einen Node im VST vor. Jeder dieser Nodes hat nun als Datengrundlage eine komplette Instanz der TNodeData-Klassendaten.
In der Natur vergleichbar mit einer Goldfruchtpalme. Jeder Strang ist ein Node und jeder Node hat eine Klasseninstanz mit allen Properties (die Blätter am Strang).

Ich habe mich damit anfangs auch sehr schwer getan. Und eben deswegen habe ich dann auch erst Add() und sowas benutzt was das Ziel Daten von GUI trennen natürlich verfehlte.
Irgendwann habe ich mich hingesetzt und einfach Code aus der Praxis abgeschrieben. Der Lerneffekt kommt dann irgendwann von alleine, wenn man mal selber eine listenbasierte Datenhaltung benötigt.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.291 Beiträge
 
Delphi 12 Athens
 
#3

AW: Datenhaltung mit VirtualStringTree und Trennung der Businesslogik

  Alt 26. Mär 2019, 14:26
Wobei man der Versuchung widerstehen muss, seinen Datenobjekten in irgendeiner Form einen PVirtualNode als Property zu verpassen. Das geht schnell, dass man dann wieder versucht die Visualisierung aus den Datenobjekten heraus zu steuern.

Ich nutze den VST jedenfalls bevorzugt als Grid. Da gibt es IMHO nichts effizienteres. Schon gar nicht solche Schwergewichte wie z.B. DevExpress. Wenn man die Daten ohnehin schon irgendwo im Speicher rumliegen hat, braucht man die nicht noch drölfzig Mal hin und her alloziieren bis man sie mal auf den Bildschirm gepinselt hat.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#4

AW: Datenhaltung mit VirtualStringTree und Trennung der Businesslogik

  Alt 26. Mär 2019, 15:55
Ich werfe mal einfach folgendes zur Diskussion bei:

Meine Geschäftslogik ruft Emails ab. D.h. ich habe eine Liste von Emails.

Wenn ich diese Emails nun zur Anzeige bringen will, kommt die Darstellungsfrage auf.

D.h. möchte ich diese z.B. nach Datum, Betreff oder Thread sortiert/gruppiert sehen.

Abhängig davon würde ich jetzt anfangen meinen VST mit Knoten und Unterknoten zu erstellen. Die Knotendaten selbst sind aber nur ein Zeiger auf das Objekt in meiner Liste.

Objekte verlinken hatte ich u.a. 2007 im Stammtisch #2 gezeigt:
https://www.delphipraxis.net/712774-post4.html
  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 18:06 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