Delphi RIO - определили класс с именем TBizObj. Одно из свойств связано с номерами DUNS. Номера DUNS иногда дополняются нулями слева до длины ровно 9 символов, поэтому у меня есть свойство SiteDUNS9 (основано на fSiteDUNS9). Вызывающая программа устанавливает свойство SiteDUNS9, но мне не нужно беспокоиться о том, содержит ли DUNS 9 символов или нет, я буду обрабатывать это в свойствах getter / setter.
Когда я определяю свое свойство для вызова этой функции, я получаю сообщение об ошибке «Несовместимые типы». Все является строкой ... никаких других типов. Вот соответствующая часть кода:
type
TBizObj = class(TObject)
private
...
fSiteDUNS9: string;
...
function FixDunsLength9(DUNS:string) :string;
published
...
property SiteDUNS9: string read fSiteDUNS9 write FixDunsLength9;
end; // End of the tBizObj Class;
implementation
...
function TBizObj.FixDunsLength9(DUNS:string):string;
begin
// This is a setter function for the DUNS9 routine
result := glib_LeftPad(DUNS, 9, '0');
end;
Я следовал примерам на сайте Embaracadero, но все еще не могу определить, что я делаю неправильно. http://docwiki.embarcadero.com/RADStudio/Rio/en/Properties_(Delphi)
Если я изменю определение своего свойства на
property SiteDUNS9: string read fSiteDUNS9 write fSiteDUNS9;
, тогда моя программа компилируется правильно.