Hallo,
Ich komme aus der alten Borland-Pascal-Szene (20 Jahre) und bin in manchen Dingen noch ein relativ unbedarfter Delphi-Neuling.
Dinge, die in Borland-Pascal kein Problem für mich darstellten, werfen in Delphi fallweise ungelöste Probleme auf. Da ich auch nicht mehr der jüngste bin (Jahrgang 1943), merke ich meine geistigen Grenzen, wobei diese zudem von der Tagesverfassung abhängen.
<b>Ich möchte hier an die Profis des Forums einen Denkanstoß geben, um "gemeinsam" eine universelle und leistungsfähige MaskEdit-Komponente zu erstellen</b>.
Meine größten Wünsche an eine derartige Komponente wären:
a) Die Komponente soll automatisch in Verbindung mit einer globalen Daten-Variable beliebigen Typs (String,Integer,Extended,Boolean, o.a.) funktionieren.
b) Man übergibt der Komponente die Variable, oder Feld eines Records als Namen. Schön wäre es, wenn man die Felder eines Records zur Auswahl vorgeschlagen bekäme.
c) Der Variablentyp wird in einem weiteren Propertyfeld festgelegt, ebenfalls Auswahl aus vorgegeben Typen.
d) Der Feldinhalt der Variable soll zur Entwicklungszeit angezeigt werden und editierbar sein.
e) Jede Änderung in der Eingabevariable von Maskedit zur Laufzeit wird automatisch mit dem richtigen Typ in die Globale Variable übertragen (z.B. OnEnter,OnExit).
f) Der gesamte Record soll in eine Datei auf der Festplatte abgelegt und von dort gelesen werden können. Hier wäre allerdings eine übergeordnete Komponente empfehlenswert, gemeinsam für mehrere Felder eines Records, welche alle auf einmal geschrieben und gelesen werden sollen.
Die Komponente wäre für Einsätze gedacht, wo man nur einen Datensatz (mit beliebigen Feldern) hat und daher eine SQL-Tabelle nicht sinnvoll erscheint.
Man würde damit das datensensitive Verhalten von Tabellen (Einzelfelder und Grids) nachbilden und sich mühselige Datenkonvertierungen ersparen.
Ich hoffe sehr, daß mein Vorschlag aufgegriffen wird, weitere Anregungen erhält, und gemeinsam realisiert wird.
Die Probleme, an denen ich gescheitert bin, waren <b>die Erstellung eines Propertys mit der Variablenadresse (durch Angabe des Feldnamens, bzw. deren Auswahl aus dem Gesamtrecord)</b>. Wenn die Adresse mal der Komponente bekannt ist, kann durch normales Pointerhandling mit Typecasting die Globalvariable problemlos behandelt werden.
Gruss aus Wien, Helmut
Ich komme aus der alten Borland-Pascal-Szene (20 Jahre) und bin in manchen Dingen noch ein relativ unbedarfter Delphi-Neuling.
Dinge, die in Borland-Pascal kein Problem für mich darstellten, werfen in Delphi fallweise ungelöste Probleme auf. Da ich auch nicht mehr der jüngste bin (Jahrgang 1943), merke ich meine geistigen Grenzen, wobei diese zudem von der Tagesverfassung abhängen.
<b>Ich möchte hier an die Profis des Forums einen Denkanstoß geben, um "gemeinsam" eine universelle und leistungsfähige MaskEdit-Komponente zu erstellen</b>.
Meine größten Wünsche an eine derartige Komponente wären:
a) Die Komponente soll automatisch in Verbindung mit einer globalen Daten-Variable beliebigen Typs (String,Integer,Extended,Boolean, o.a.) funktionieren.
b) Man übergibt der Komponente die Variable, oder Feld eines Records als Namen. Schön wäre es, wenn man die Felder eines Records zur Auswahl vorgeschlagen bekäme.
c) Der Variablentyp wird in einem weiteren Propertyfeld festgelegt, ebenfalls Auswahl aus vorgegeben Typen.
d) Der Feldinhalt der Variable soll zur Entwicklungszeit angezeigt werden und editierbar sein.
e) Jede Änderung in der Eingabevariable von Maskedit zur Laufzeit wird automatisch mit dem richtigen Typ in die Globale Variable übertragen (z.B. OnEnter,OnExit).
f) Der gesamte Record soll in eine Datei auf der Festplatte abgelegt und von dort gelesen werden können. Hier wäre allerdings eine übergeordnete Komponente empfehlenswert, gemeinsam für mehrere Felder eines Records, welche alle auf einmal geschrieben und gelesen werden sollen.
Die Komponente wäre für Einsätze gedacht, wo man nur einen Datensatz (mit beliebigen Feldern) hat und daher eine SQL-Tabelle nicht sinnvoll erscheint.
Man würde damit das datensensitive Verhalten von Tabellen (Einzelfelder und Grids) nachbilden und sich mühselige Datenkonvertierungen ersparen.
Ich hoffe sehr, daß mein Vorschlag aufgegriffen wird, weitere Anregungen erhält, und gemeinsam realisiert wird.
Die Probleme, an denen ich gescheitert bin, waren <b>die Erstellung eines Propertys mit der Variablenadresse (durch Angabe des Feldnamens, bzw. deren Auswahl aus dem Gesamtrecord)</b>. Wenn die Adresse mal der Komponente bekannt ist, kann durch normales Pointerhandling mit Typecasting die Globalvariable problemlos behandelt werden.
Gruss aus Wien, Helmut
Comment