Советы по Delphi

         

Получение констант с определением ошибки функцией LoadStr


Возбуждение исключения и передача строковой константы ошибки из CONSTS.PAS (как это делалось в Delphi 1 и Delphi 2) в Delphi3 невозможна. Например:

raise SomeException.Create(LoadStr(SInsertLineError));

в Delphi3 теперь не работает. Я предлагаю использовать выражение

raise SomeException.Create({$IFNDEF VER100}LoadStr{$ENDIF}(SInsertLineError));

для вызова функции LoadStr "по нужде", устаревшей почему-то для этих целей в Delphi 3.

При попытке вызвать данную функцию в Delphi 3 (для получения типа ошибки, декларированной в модуле CONSTS(.PAS/.DCU)), мы получаем следующую ошибку компилятора: "Incompatible types: 'Integer' and 'String'"

Однако в Delphi 4 данная оплошность исправлена и вроде как документирована. Почитайте в хелпе на тему "resourcestrings", посмотрите сырцы и все сразу станет понятно и просто. [000061]



Содержание раздела