![]() |
TControl.Autosize auslesen geht nicht
Hi!
AutoSize wird in der Klasse TControl eingeführt. Warum kann ich jetzt die Eigenschaft AutoSize nicht auslesen? Auch schon die Code-Vervollständigung bietet mir AutoSize nicht an, auch nicht für T(Scrolling)WinControl etc. Es ist aber nicht möglich, die Control als eine weiter abgeleitete Klasse zu casten, da die Objekte ja ziemlich unterschiedlich sein können. Wie lese ich Autosize aus?
Delphi-Quellcode:
procedure RepaintWinControl(_Control: TWinControl);
var i: Integer; begin if _Control.InheritsFrom(TWinControl) then begin for i := 0 to _Control.ControlCount - 1 do begin if _Control.Controls[i].InheritsFrom(TWinControl) then begin RepaintWinControl(TWinControl(_Control.Controls[i])); end else begin if _Control.Controls[i].InheritsFrom(TControl) then begin _Control.Controls[i].Invalidate; end; end; end; if (_Control as TControl).AUTOSIZE then begin // <-- führt zu Fehler beim Kompilieren // irgendwas end; _Control.Invalidate; end; end; |
Re: TControl.Autosize auslesen geht nicht
es bleibt nur die Möglichkeit des Castens auf eine Klasse wo das Property außerhalb von Protected ist. Und genau das ist auch der Grund warum du nicht auf das Property zugreifen kannst, weil es im published ist.
|
Re: TControl.Autosize auslesen geht nicht
Das Erklärt einiges.
Lösung (egal ob sauber oder nicht, es funktioniert scheinbar):
Delphi-Quellcode:
type TDummy = class(TWinControl)
public property AutoSize; end; ... if TDummy(_Control).AutoSize then begin // irgendwas end; Danke für die Info! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz