Announcement

Collapse
No announcement yet.

Eigenschaftseditor für zwei Felder

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

  • Eigenschaftseditor für zwei Felder

    Hallo alle,

    ich habe eine datensensitive Komponente entwickelt, die auf zwei Felder (Field und IDField) einer angebundenen Datenbank zugreift. Das funktiniert soweit auch.
    Damit es für den Anwender komfortabler wird, möchte ich die möglichen Feldnamen in einer Liste darstellen.
    Also muss ein (oder zwei?) Eigenschaftseditor registiert werden.

    unit DBStahlReg;

    interface

    { TFieldNameProperty }

    type
    TFieldNameProperty = class(TDBStringProperty)
    public
    procedure GetValueList(List: TStrings); override;
    end;

    procedure TFieldNameProperty.GetValueList(List: TStrings);
    begin
    (GetComponent(0) as TDBDataSet).GetFieldNames(List);
    end;

    procedure Register;

    implementation

    procedure Register;
    begin
    RegisterPropertyEditor(TypeInfo(string),TDBDataSet ,'FieldName',TFieldNameProperty);
    end;

    end.

    So habe ich es versucht (abgeschaut in der BDEReg von D7Prof).
    Die Klasse TDBStringProperty ist aber unbekannt und ich finde nicht heraus, wo diese definiert ist. Oder stimmt der Ansatz doch noch nicht?

    Der Eigenschaftseditor wird dann wohl so zugewiesen:

    procedure Register;
    begin
    RegisterComponents('StahlDB', [TDBPanel]);
    RegisterPropertyEditor(TypeInfo(String),TDBPanel,' FieldName',TFieldNameProperty);
    end;

    Ist es normal, dass dazu die Units DesignIntf und DesignMenus zuvor eingebunden und kompiliert werden müssen?

    Danke für Eure Hilfe
    von Stahli
Working...
X