Tengo una clase de componente sencillo con propiedad booleana:clase de conjunto booleano true da falsa en tiempo de ejecución
TmyClass = class(TComponent)
private
fSomeProperty: boolean;
published
property SomeProperty: boolean
read fSomeProperty
write fSomeProperty
default true;
end;
lo puse en mi forma, ponemos a true (SomeProperty se establece en falso, ¿por qué?), Pero cuando intento acceder SomeProperty desde el tiempo de ejecución, me da falso. ¿Por qué es así?
+1; No he encontrado nada útil en el especificador 'predeterminado' excepto que en el Inspector de Objetos cuando cambias el valor de alguna propiedad del' predeterminado', se resalta con la fuente en negrita; si lo cambia de nuevo a 'default' se elimina el estilo en negrita. –
Como dijo @ain, lea la sección Especificadores de almacenamiento de la ayuda o DocWiki. Esto dice: 'Nota: Los valores de propiedad no se inicializan automáticamente al valor predeterminado. Es decir, la directiva predeterminada controla solo cuando los valores de propiedad se guardan en el archivo de formulario, pero no el valor inicial de la propiedad en una instancia recién creada. –
Para solucionarlo, agregue el código de constructor 'FSomeProperty: = true' –