gpt4 book ai didi

delphi - 对象检查器中的星号是什么意思?

转载 作者:行者123 更新时间:2023-12-03 14:40:31 25 4
gpt4 key购买 nike

在 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

最佳答案

您似乎对星号的含义进行了逆向工程。由于我猜您没有设计时组件代码的来源,因此您需要依赖此类逆向工程或您可以找到的任何文档。

在评论中,您想知道该组件如何使对象检查器显示星号。为此,组件将注册一个覆盖 TPropertyEditor.GetName 的属性编辑器。通过这样做,它可以返回它喜欢的任何名称,并且对象检查器将忠实地显示该名称。

为了说明这一点,我使用了自己的一个属性编辑器,并像这样修改了它:

type
TMinMaxGridColumnProperty = class(TFloatProperty)
public
function GetName: string; override;
....
end;

function TMinMaxGridColumnProperty.GetName: string;
begin
Result := inherited GetName + '*';
end;

现在,该属性编辑器提供的属性在对象检查器中显示如下:

enter image description here

因此,在我看来几乎可以肯定,这就是您正在使用的组件如何影响这一点的。设计时代码将使用组件的状态来确定是否附加星号。

关于delphi - 对象检查器中的星号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23134244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com