Кажется, что иногда Delphi чувствителен к регистру - «метод переопределения должен соответствовать регистру предка» - PullRequest
8 голосов
/ 13 октября 2011

Сегодня я столкнулся с «странным» намеком:

метод переопределения xxxx должен соответствовать регистру предка yyyy.

Решением было объявить имя метода точно так же, как в предке .... Я считаю, что это то, что покоилось в компиляторе со времен компилятора Delphi.Net ...

Объявление метода точно так же, как в предке, заставило компилятор «замолчать». Есть и другие «чувствительные к регистру» подсказки / предупреждения в Delphi 2006 и более поздних версиях?

1 Ответ

14 голосов
/ 13 октября 2011

Это подсказка для защиты вашего кода при взаимодействии с сторонним кодом.
Эта подсказка была введена с добавлением Delphi для .net, потому что некоторые другие платформы .net чувствительны к регистру.

Обратите внимание, что подсказка не подразумевает какой-либо чувствительности к регистру со стороны Delphi.
Только в пункте 1 ниже сам Delphi чувствителен к регистру, пункт 2 являетсяартефакт способа вызова компилятором Delphi чувствительной к регистру функции GetProcAddress() в Windows API.

чувствительное к регистру поведение в Delphi

1-Регистрациякомпоненты
Я не знаю других подсказок, чувствительных к регистру, но учтите, что когда вы пишете свои собственные компоненты и хотите их зарегистрировать, функция регистрации, которую вы объявляете , должна записать так:

procedure Register;  <<-- Leading capital required.  

Если вы этого не сделаете, Delphi не добавит ваш новый компонент.

2-Импорт внешних функций

Как заявил Дэвид, при импорте внешних функций точный регистр, используемый в DLL, должен быть сохранен.

Невозможно отключить отдельные подсказки
Обратите внимание, что нельзя отключить конкретную подсказку: Можно ли отключить определенные подсказки Delphi?

...