Einzelnen Beitrag anzeigen

David Martens

Registriert seit: 29. Sep 2003
205 Beiträge
 
Delphi XE Enterprise
 
#1

Ein TFrame als published property?

  Alt 19. Feb 2010, 12:55
Hallo,

langsam bin ich am verzweifeln. Ich schreibe eine nicht sichtbare Komponente die grundlegende Funktionen bereitstellt.

Folgende Situation:

Ein Formular enthält:
- ein "Grid" (advStringGrid, DBGrid oder VirtualStringTree)
- ein schon fertiges FRAME mit Navigationsbuttons (Speedbuttons) und einer Statusbar
- ein schon fertiges FRAME mit Buttons wie Aktualisieren, Verwerfen, Schließen, Hilfe.

Jedes mal wenn ein solches Formular neu erstellt wird gibt es eine ganze Reihe an Prozeduren die immer das Gleiche machen:
FirstClick, PrevClick, NextClick, LastClick, AddClick, SchliessenClick, HilfeClick,...

Jetzt soll ich eine Komponente schreiben die diese einheitlichen Funktionen kapselt. Dafür habe ich einer nicht visuelle Komponente geschieben (oder bin dabei).

Für die Grids habe ich, erfolgreich, folgendes benutzt:
Delphi-Quellcode:
  {$REGION 'Links der Grids'}
  strict private
    FAdvStringGridLink : TAdvStringGrid;
    FVirtualStringTreeLink : TVirtualStringTree;
    FDBGridLink : TDBGrid;

    procedure SetAdvStringGridLink (const Value : TAdvStringGrid);
    procedure SetVirtualStringTreeLink(const Value : TVirtualStringTree);
    procedure SetDBGridLink (const Value : TDBGrid);
  published
    property LinkAdvStringGrid : TAdvStringGrid read FAdvStringGridLink
                                                        write SetAdvStringGridLink;
    property LinkVirtualStringTree : TVirtualStringTree read FVirtualStringTreeLink
                                                        write SetVirtualStringTreeLink;
    property LinkDBGrid : TDBGrid read FDBGridLink
                                                        write SetDBGridLink;
  {$ENDREGION}
Damit kann ich im Objektinspektor das entsprechende Grid auswählen, sobald es auf dem Formular ist.

Das Gleiche habe ich für die Oberflächenelemente versucht:
Delphi-Quellcode:
  {$REGION 'Links zu den Oberflächenelementen'}
  strict private
    FFormVerwaltung : TFormVerwaltung;
    FfraNavigationStatusCustom : TfraNavigationStatusCustom;
    FfraButtonleiste : TfraButtonleiste;

    procedure SetFormVerwaltung (const Value : TFormVerwaltung);
    procedure SetfraButtonleiste (const Value : TfraButtonleiste);
    procedure SetfraNavigationStatusCustom(const Value : TfraNavigationStatusCustom);
  published
    property FormVerwaltung : TFormVerwaltung read FFormVerwaltung
                                                                   write SetFormVerwaltung;
    property fraButtonleiste : TfraButtonleiste read FfraButtonleiste
                                                                   write SetfraButtonleiste;
    property fraNavigationStatusCustom : TfraNavigationStatusCustom read FfraNavigationStatusCustom
                                                                   write SetfraNavigationStatusCustom;
  {$ENDREGION}
Wobei TfraButtonleiste und TfraNavigationStatusCustom Frames sind.
Das Formular selbst ist ein TFormVerwaltung und ich müsste da Self angeben können, oder so.
Diese Eigenschaften sehe ich im Objektinspektor, kann sie aber nicht zuweisen.

Kann mir da jemand helfen?

Danke David
  Mit Zitat antworten Zitat