Получение констант с определением ошибки функцией 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]