TPageControl
unterstützt nicht nativ, wonach Sie fragen. Um das zu erreichen, was Sie fordern, würden Sie müssen entweder:
haben Ihre Komponente wieder erklären die Style
Eigenschaft mit neuen Getter/Setter-Methoden, und haben dann die Setter verlassen, ohne etwas zu tun. Die ererbte Eigenschaft Style
ist jedoch zur Laufzeit technisch noch erreichbar, wenn der Benutzer der Komponente wirklich darauf zugreifen möchte.
leiten Sie Ihre Komponente aus TCustomTabControl
statt TPageControl
und neu implementieren alles, was TPageControl
tut, aber ohne das geschützte Style
Eigentum zu fördern. Die ererbte Eigenschaft Style
ist jedoch zur Laufzeit technisch noch erreichbar, wenn der Benutzer der Komponente wirklich darauf zugreifen möchte.
Lassen Sie Ihre Komponente die virtuelle CreateParams()
-Methode überschreiben und erzwingen Sie den TCS_TABS
Fensterstil im Feld TCreateParams.Style
. Die Eigenschaft Style
hat immer noch den vom Benutzer zugewiesenen Wert (was sich auch auf das Verhalten der Eigenschaft TabPosition
auswirkt), aber das zugrunde liegende Fenster verhält sich immer so, als ob der Stil tsTabs
verwendet würde.
Verwenden Sie eine Umgehungsbibliothek, um TCustomTabControl.SetStyle()
direkt zur Laufzeit zu haken und es zurückzukehren, ohne etwas zu tun.
Verwenden Sie nur etwas Selbstbeherrschung. –
Ich hätte erwartet, dass ein 'TCustomPageControl' verfügbar wäre. aber da ist nicht. Siehe verwandte Q, die helfen könnte: [Wie entfernen Sie eine Eigenschaft aus einer abgeleiteten Komponente] (http://stackoverflow.com/questions/15961579/how-do-you-remove-a-property-from-a-descendent- Komponente) – kobik
@kobik: 'TPageControl' wird von' TCustomTabControl' abgeleitet. In jedem Fall verbergen die meisten der in diesem Link beschriebenen Techniken jedoch die Eigenschaft zur Entwurfszeit, aber die Eigenschaft ist zur Laufzeit weiterhin für Code verfügbar. –