Autor Beitrag
Eisenherz
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Mi 19.02.03 16:17 
Der Code ist auf alle Fälle sehr kompakt.

maximus hat folgendes geschrieben:
So. Ich hab meinen code auf 'read-only' und 'stored false' properties sensibilisiert.

Ich vermute dass die Zeile
Zitat:
ausblenden Quelltext
1:
if RTTI.Items[i].PropInfo.StoredProc = nil then continue;					

das stored false abprüfen soll. Ich habe auf die Schnelle keine vernünftige Hilfe zu StoredProc gefunden (In der Hilfe ist es zwar erwähnt aber nicht weiter beschrieben) und kann es leider momentan auch nicht ausprobieren. Ich hätte aber vermutet, dass StoredProc ein Zeiger auf die Methode wäre, die ermittelt, ob das Property gespeichert werden soll.
Ich hätte es vermutlich mit der Funktion IsStoredProp aus der Unit TypInfo versucht.

Zitat:
ausblenden Quelltext
1:
if v <> '' then sl.Add('  ' + RTTI.Items[i].Name+' = '+ v);					

Wieso speicherst Du nur Properties, die als Wert nicht den Leerstring haben? Ich wüsste nicht, warum ein string-Property das als Wert den Leerstring hat nicht abgespeichert werden soll?


Was passiert, wenn man ein published Property vom Typ TBitmap oder irgendeiner anderen Klasse hat?

Das ursprüngliche Problem von Schatten^Parker war das Speichern von einer nicht festgelegten Anzahl von Mitgliedern in einer Datei. Kann man mit Deinen Funktionen dieses Problem lösen?

_________________
aloa Eisenherz
maximus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: Mi 19.02.03 19:34 
8) Dir kann ma auch garnichts recht machen. Zugeben man kann nicht alle sonderfälle damit speichern, aber dies war uhrsprünglich auch nur dafür gedacht mir das speichern, von konfigurationen, meine anwendung abzunehmen.
Zitat:
das stored false abprüfen soll. Ich habe auf die Schnelle keine vernünftige Hilfe zu StoredProc gefunden (In der Hilfe ist es zwar erwähnt aber nicht weiter beschrieben) und kann es leider momentan auch nicht ausprobieren. Ich hätte aber vermutet, dass StoredProc ein Zeiger auf die Methode wäre, die ermittelt, ob das Property gespeichert werden soll.
Ich hätte es vermutlich mit der Funktion IsStoredProp aus der Unit TypInfo versucht.
...ich habs halt so gemacht, weil ich glaube das in 'storedProc' nur die adresse der 'getProc' drinne ist, die somit bei NIL einfach übergangen wird...solange es funktioniert...und das tut es :D

Zitat:
Wieso speicherst Du nur Properties, die als Wert nicht den Leerstring haben? Ich wüsste nicht, warum ein string-Property das als Wert den Leerstring hat nicht abgespeichert werden soll?
...is mir auch entfallen...kann man getrost löschen!
Zitat:
Was passiert, wenn man ein published Property vom Typ TBitmap oder irgendeiner anderen Klasse hat?

Tja...verdammt, hiermit leider nicht! Deshalb hab ich ja auch nochwas ganz anderes programmiert :lol: zB. für meine DirectX engine hab ich klasse gemacht, die wie TComponent funktioniert(der ganze quatsch weg), damit kann ich gigantische object-bäume speicher, indem ich einen DFM-konformen stream erzeuge! Dann kann ich mit 'ObjectBinaryToText' und 'ObjectTextToBinary' den stream in DFM-text machen, der unter anderem auch TBitmap darstellen kann.

Die lösung weiter oben (mit TComponent), schluckt ohne weites hunderte objekte, auch vom typ TBitmap.
Zitat:
Das ursprüngliche Problem von Schatten^Parker war das Speichern von einer nicht festgelegten Anzahl von Mitgliedern in einer Datei. Kann man mit Deinen Funktionen dieses Problem lösen?

davon sind wir jetzt eh weit entfernt...abgesehen davon kann er (wenn er kann) diese lösung einfach modifizieren, sodass er mehrere objekte rein tut :twisted:

Worauf ich, mit alle dem, hinnaus wollte ist eigentlich nur, dass die leute nicht jeden blöden wert einzeln speichern müssen...und einfach mal ein paar dynamische wege aufzeigen! -> Ich bin halt ein fan der klasse TFiler.

Hast du denn bessere vorschläge? :D

mfg maximus.
Eisenherz
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Do 20.02.03 19:05 
maximus hat folgendes geschrieben:
Deshalb hab ich ja auch nochwas ganz anderes programmiert :lol: zB. für meine DirectX engine hab ich klasse gemacht, die wie TComponent funktioniert(der ganze quatsch weg), damit kann ich gigantische object-bäume speicher, indem ich einen DFM-konformen stream erzeuge! Dann kann ich mit 'ObjectBinaryToText' und 'ObjectTextToBinary' den stream in DFM-text machen, der unter anderem auch TBitmap darstellen kann.


Wenn das allgemein verwendbare Klassen sind, dann wäre es doch schön, wenn Du diese der Allgemeinheit als OpenSource zur Verfügung stellen würdest. Der ein oder andere könnte so etwas vielleicht auch gebrauchen.

Zitat:
Hast du denn bessere vorschläge? :D

Es ist meistens Geschmackssache, ob man etwas als besser oder schlechter empfindet. Ich bin einfach immer auf der Suche nach Ideen, die mir mein Programmiererleben leichter machen. :D

_________________
aloa Eisenherz
maximus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: Fr 21.02.03 11:22 
*g*
Zitat:
Wenn das allgemein verwendbare Klassen sind, dann wäre es doch schön, wenn Du diese der Allgemeinheit als OpenSource zur Verfügung stellen würdest. Der ein oder andere könnte so etwas vielleicht auch gebrauchen.
...Sind relativ allgemein...und brauchen kann man sie auch, IMHO sehr gut. Hatte sowieso geplannt die gesammte engine 'frei zu stellen' wenn sie fertig ist. Ich könnte allerdings, schon vorher den 'base-teil' veröffentlichen...muss allerdings vorher noch meine HP redesignen.
Zitat:
Es ist meistens Geschmackssache, ob man etwas als besser oder schlechter empfindet. Ich bin einfach immer auf der Suche nach Ideen, die mir mein Programmiererleben leichter machen.

:D 1. klar, über geschmack lässt sich.... :D 2. Ich suche auch immer neue möglichkeiten und vor allem auch generelle technicken. Ich würd mich freuen, wenn hier auch mehr erkenntnisse präsentiert würden, die der allgemeinheit dienen, und nicht immer nur einzelnen -> *Wie mach ich das und das bunt* und dann kommt einer und sagt *kuckst du hier* (übertreibung). -> Vielleicht sollte man mal eine neue Source-base aufmachen, wo alle ihren tollen code reinladen können und die anderen können ihn dann voten :wink:

mfg maximus