Что означает звездочка в Object Inspector?
В инспекторе объектов Delphi я вижу звездочку за именем свойства (ConnectionName*
):
![Asterisk in object inspector]()
Как это получается, и прежде всего: что это значит?
В исходном коде для TMySQLConnection я не вижу ничего особенного, поэтому я предполагаю, что он имеет некоторое время для разработки?
Обновление
Это как-то связано с содержимым TSQLConnection.
Чтобы воспроизвести, вставьте код ниже в форме.
После некоторых игр, я делаю вывод, что звездочка появляется, когда свойство Params редактируется, так что оно больше не имеет значений по умолчанию. Мне все еще остается загадкой, как это достигается.
object SQLConnection1: TSQLConnection
ConnectionName = 'MySQLConnection'
DriverName = 'MySQL'
LoginPrompt = False
Params.Strings = (
'DriverUnit=Data.DBXMySQL'
'DriverPackageLoader=TDBXDynalinkDriverLoader,DbxCommonDriver190.' +
'bpl'
'DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borla' +
'nd.Data.DbxCommonDriver,Version=19.0.0.0,Culture=neutral,PublicK' +
'eyToken=91d62ebb5b0d1b1b'
'MetaDataPackageLoader=TDBXMySqlMetaDataCommandFactory,DbxMySQLDr' +
'iver190.bpl'
'MetaDataAssemblyLoader=Borland.Data.TDBXMySqlMetaDataCommandFact' +
'ory,Borland.Data.DbxMySQLDriver,Version=19.0.0.0,Culture=neutral' +
',PublicKeyToken=91d62ebb5b0d1b1b'
'GetDriverFunc=getSQLDriverMYSQL'
'LibraryName=dbxmys.dll'
'LibraryNameOsx=libsqlmys.dylib'
'VendorLib=LIBMYSQL.dll'
'VendorLibWin64=libmysql.dll'
'VendorLibOsx=libmysqlclient.dylib'
'MaxBlobSize=-1'
'DriverName=MySQL'
'HostName='
'Database='
'User_Name=xxx'
'Password='
'ServerCharSet='
'BlobSize=-1'
'ErrorResourceFile='
'LocaleCode=0000'
'Compressed=True'
'Encrypted=False'
'ConnectTimeout=60')
Left = 48
Top = 24
end
Ответы
Ответ 1
У вас, похоже, было обратное проектирование значения звездочки. Поскольку я полагаю, что у вас нет источника кода компонента времени разработки, вам нужно будет полагаться на такую обратную разработку или любую документацию, которую вы можете найти.
В комментариях вам интересно, как компонент может заставить Object Inspector отобразить звездочку. Для этого компонент зарегистрировал бы редактор свойств, который переопределяет TPropertyEditor.GetName
. Таким образом, он может вернуть любое имя, которое он представляет, и инспектор объектов точно отобразит это имя.
Чтобы проиллюстрировать, я взял один из моих собственных редакторов свойств и взломал его так:
type
TMinMaxGridColumnProperty = class(TFloatProperty)
public
function GetName: string; override;
....
end;
function TMinMaxGridColumnProperty.GetName: string;
begin
Result := inherited GetName + '*';
end;
И теперь свойства, которые обслуживаются этим редактором свойств, выглядят следующим образом в Object Inspector:
![enter image description here]()
Поэтому мне почти наверняка кажется, что именно так работает компонент, с которым вы работаете. Код времени разработки будет использовать состояние компонента, чтобы определить, добавлять или не добавлять звездочку.