2016-08-12 1 views
3

Ich habe einen Rahmen von mir als Komponente registriert. Danach legte ich eine innere Kontrolleigenschaft frei (TListView.Columns, in diesem Fall).Zeigt ein inneres Steuerelement eines Rahmens als Eigenschaft an, Änderungen werden jedoch nicht registriert. Was habe ich vergessen zu registrieren?

Änderungen werden jedoch nicht im dfm gespeichert, wodurch das Programm die Spalten ignoriert, die ich in der Entwurfszeit erstellt habe.

Ich sogar die gesamte Listenansicht ausgesetzt. Aber noch ist nichts in der DFM gespeichert.

TFme_CustomAssociatedFiles = class(TFrame) 
    ... 
    Lsv_Files: TListView; 
    ... 
    published 
    property InternalListView: TListview read Lsv_Files; 
    ... 
    end; 

Antwort

3

Nachdem ich ein wenig nachgedacht habe, erinnerte ich mich an eine Komponente namens TLabeledEdit. Ich habe die Quelle mit meiner Quelle verglichen, und das Ergebnis ist, dass das Steuerelement/die Komponente, die als Unterkomponente aufrufbar ist, als TComponent.SetSubComponent() markiert wird.

Also, im Konstruktor des Rahmens musste ich schließen ein:

constructor TFme_CustomAssociatedFiles.Create(AOwner: TComponent); 
begin 
    ... 
    Lsv_Files.SetSubComponent(true); 
    ... 
end; 

Und das alles wie ein Charme.

Verwandte Themen