Einzelnen Beitrag anzeigen

daddy

Registriert seit: 9. Sep 2005
Ort: Köln
124 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Komponenten-Entwicklung allegemein

  Alt 15. Jun 2007, 09:48
So wie ich das sehe, wird das so nicht funktionieren. Das Property "DBCheckBox" würde normalerweise dazu verwendet werden, um eine CheckBox vom Typ "TMyCheckBox" der Komponente vom Typ "TGMTFarbContainer" zuweisen zu können. Diese CheckBox würde aber eine eigenständige Komponente innerhalb des Formulars sein.
Was Du vorhast, ist die CheckBox in der Komponente selber zu erzeugen. Das geht natürlioch auch. Dazu wird sie aber nicht als Property sondern unter private, protected oder public (je nachdem) als ganz normale Eigenschaft deklariert. Im "Create" wird sie dann erzeugt, so wie Du es ja jetzt auch schon machst, die feststehenden Eigenschaften werden zugewiesen (wie Du es ja ebenfalls schon machst) und für die variablen Eigenschaften wie z.B. "DataSource" und "DataField" müsstest Du eigene Properties definieren, in deren "Set..."-Routine dann eine Zuweisung an die CheckBox erfolgt. Also etwa so:


Delphi-Quellcode:
Type
  TGMTFarbContainer = class(TCustomPanel)
  private
    DBCheckBox: TMyCheckBox;
    FDBCheckBoxDataSource: TDataSource;
    procedure SetDBCheckBoxDataSource(value : TDataSource);
    ...
  property
    ...
    DBCheckBoxDataSource: TDataSource read FDBCheckBoxDataSource
                                      write SetDBCheckBoxDataSource;
    ...
 end;

procedure TGMTFarbContainer.SetDBCheckBoxDataSource(value : TDataSource);
begin
  DBCheckBox.DataSource := Value;
end;
  Mit Zitat antworten Zitat