![]() |
Re: wie abspeichern?
aber ich hätte dann eine datei in der form:
Code:
und das ist nicht soo einfach.... :wink:
[Name]
Unfall mit 30-Tonner [Lauftext] 35-Jähriger erleidet schwere verletzungen an armen und beinen [Text] blablabla ..... blablabla ..... blablabla ..... [Tipp] mach dies mach das oder dies oder das wo gibts denn zlib? is dasn externes prog oder is das ne compo, bzw ne unit, wo entsprechende procedures drin sind? |
Re: wie abspeichern?
Hallo,
ich gehe mal davon aus, das die Patienten in einer Collection (Array, verkettet Liste o TList usw) gespeichert sind. Dann haben wir hier einen ganz klaren Anwendungsfall der Klasse
Code:
aus der
TmxJsCollection
![]() Die einzelnen Patienteneigenschaften sind published properties eines Nachfahren von TCollectionItem. Dann ist das Speichern eines Memos auch gar kein Problem mehr. Wenn man sich entschließt noch ein paar Patienteneigenschaften hinzuzufügen bekommt der TCollection-Nachfahre noch ein paar published properties (können auch Bitmaps sein !!!) und das wars. Um das Speichern der zusätzlichen properties muss man sich nicht kümmern. Läuft automatisch!!! |
Re: wie abspeichern?
also ich benutz diese unit, und dann?
als was muss ich meine "datenbank" dann deklarieren bzw wie kann ich diese benutzen? |
Re: wie abspeichern?
Zitat:
Es reicht natürlich nicht die unit zu verwenden. Du musst Dir auch das Beispiel anschauen und nachvollziehen. Der Aufwand lohnt sich. Wenn Du den Source und die OOP dahinter verstanden hast, wirst Du erkennen, dass das Gespann TCollection/TCollectionItem einfach genial ist. Jeder Patient wird durch ein Objekt repräsentiert. (Das sollte in den Zeiten der OOP natürlich selbstverständlich sein). D.h. alle Patienteneigenschaften werden in den published properties eines TCollectionItem-Nachfahren repräsentiert. TmxJsCollection verwaltet dann die einzelnen PatientenObjekte. Jetzt kommt der MegaVorteil der Sache!!!!!!!! Wenn Du Dich entschließt zu den Patienten ein Bild zu speichern erweiterst Du das PatientenObjekt um eine TBitmap Eigenschaft (natürlich im published Abschnitt). Das wars!!! Das Bild wird automatisch gespeichert. Wenn Du noch Dateien mit alten Patientendaten (ohne Bild) hast können die Dateien trotzdem gelesen werden. Das wäre bei einer typisierten Datei nicht der Fall. |
Re: wie abspeichern?
Genau,
TmxJsCollection kann ich dir auch nur empfehlen! Da kannst du quasi vollautomatisch das dfm-persistenzierung-system benutzen, das einzige was du machen ist: SaveToFile/loadFromFile :wink: @Jens: Hab für unsere collection ein template erstellt, womit die collection ein user-typ interface hat. Sehr geil, weil man nirgends mehr casten braucht. Werd ich demnächst mal posten. |
Re: wie abspeichern?
Zitat:
Wenn die Datenstrukturen aber komplexer werden, dann vermute ich, dass TmxJsCollection an seine Grenzen stoßen wird. Da wäre z.B. Polymorphie. Nehmen wir an blkbkk würde von der Klasse TPatient die Klassen TKassenPatient und TPrivatPatient ableiten. Er könnte die Instanzen dieser Klassen nicht in einer Collection halten, da Collections nur die Instanzen einer Klasse halten können. Datenkapselung: Es können nur published-Properties automatisch gespeichert werden. Das Speichern von Daten mit einer anderen Sichtbarkeit ist dann nicht mehr ganz so einfach. Und was macht man, wenn man aus irgendeinem Grund nicht von TCollectionItem ableiten kann? |
Re: wie abspeichern?
Zitat:
Properties auch wiederum Objekte sein. Diese Objekte müssen aber min von TPersistent abgeleitet sein. Zitat:
Die Collection verwaltet dann Klassen vom Type TPatient. Da TKassenPatient und TPrivatPatient Nachfahren von TPatient sind gibt es hier keine Probleme. Die Klassen müssen naturlich OOP mäßig gestylt sein. Siehe TStrings und ff. Zitat:
Zitat:
|
Re: wie abspeichern?
Zitat:
Wenn man hierarchische strukuren will und verschiedene klassen, dann muss man halt TComponent nehmen oder selbst was schreiben :wink: |
Re: wie abspeichern?
Zitat:
|
Re: wie abspeichern?
Zitat:
Aber oft hat man es mit relationalen Datenstrukturen zu tun. Objekte haben nur Reverenzen auf andere Objekte und sind nicht der Besitzer des anderen Objektes. Man kann sicherlich auch das mit TmxJsCollection lösen, dann ist es aber vorbei mit einfach nur published machen. Zitat:
Zitat:
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:03 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