Announcement

Collapse
No announcement yet.

Maskedit-Komponente für Record-Variable und sonstigen fehlenden Features

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Maskedit-Komponente für Record-Variable und sonstigen fehlenden Features

    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

  • #2
    <b>Nachtrag zu MaskEdit</b>:

    Obige Komponente hat noch einen Schönheitsfehler.

    Wenn mehrere Instanzen dieser Komponente existieren, werden diese nicht automatisch aktualisiert, so wie es datensensitive Komponenten tun.

    Das Aufblättern einer anderen Bildschirmseite, welche zufällig die gleiche Komponente im Duplikat enthält löst ja nicht das Ereignis "OnEnter" aus, oder doch ?

    Es lohnt sich also über einen Mechanismus nachzudenken, welcher alle Instanzen einer Komponente bei Änderung automatisch aktualisiert, dann wäre dieses Maskedit perfekt und vielfach einsetzbar, ohne z.B. TClientDataSet mit den umständlichen Zuweisungen verwenden zu müssen.

    Gruss aus Wien, Helmu

    Comment


    • #3
      Hallo, Helmut,
      falls du nochmal in diesen Thread schaust:
      Wenn du eine solche Komponente gefunden/geschrieben
      hast, kannst du mir bitte bescheid geben:
      <pre>[email protected]</pre>
      Ich arbeite nämlich an der Umsetzung einer DOS-Anwendung,
      die ein ähnliches Konzept benutzt.<br>
      Danke im Voraus, Uli

      Comment

      Working...
      X