Получение констант с определением ошибки функцией 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", посмотрите сырцы и все сразу станет
понятно и просто.
|