entweder
Delphi-Quellcode:
if MyComponent is TCustomEdit then
TEdit(MyComponent).ReadOnly := ReadOnlyStatus
else if MyComponent is ... then
...
Denn z.B. bei DevExpress hast du sonst richtig Spaß, wenn sich das atattdessen in Edit.Properties.ReadOnly versteckt.
SetPropValue:
XE2 kennt schon die erweiterte
RTTI (
RTTI.pas), dann verwende besser die darin enthaltenen neueren APIs, anstatt dieser
uralten API.
Aber ich bin mir sicher, dass SetPropValue auch Boolean kann.
Eventuell aber nur, wenn man den Wert vorher in einen Ordinalen Typ umwandelt
Ord(ReadOnlyStatus)
,
denn Delphi nutzt Boolean (1 Byte groß mit 0 und
+1), welches als VarType als ein Integer mit Min=0 und Max=1 definiert ist, und Variant kennt nur WordBool (2 Byte groß mit 0 und
-1)