6. Строковые константы

Всевозможные капшены и прочие строки, видимые в приложении, за исключением строк из данных на сервере, сохраняются в проекте с помощью компонента TssDBStrConstants. Дизайнтайм-редактор констант открывается двойным щелчком мыши на компоненте:

Константы сохраняются сразу в двух местах – общий файл <имя проекта>.tpxl_mgs и файл конкретного компонента <Имя класса формы-владельца>.caption. Общий файл это метаданные, для проекта он находится рядом с файлом DPR. Из такого файла константы считываются во время выполнения. Разработчик сразу может увидеть сохраненные строки во время отладки, если скопирует его в каталог, где находится EXE, или если EXE скомпилирован прямо в каталог проекта (рядом с файлом DPR). Текстовые файлы *.caption нужны для обмена исходниками.

В коде проекта значения констант считываются при помощи свойств Strings и GlobalStrings или с помощью функций FindString и FindGlobalString. Значения констант наследуются. Данные свойства и функции вернут константу, указанную в форме-предке при вызове из потомка или с именем класса потомка. То есть, если константа указана в классе TAncestorForm, она вернется и в потомке тоже:

TDescendantForm = class(TAncestorForm)
    
TAncestorForm.InitCaptions; 
begin 
  // этот код работает верно 
  Caption := StrConstants.Strings['FormCaption'];
end;
    
TDescendantForm.InitCaptions;
begin
  // этот код тоже работает верно
  SomeCaption := StrConstants.Strings['SomeCaption'];
end;
    

В поставляемом файле TillypadManager.tpxl_msg содержатся мультиязычные данные. Подробнее об этом рассказано в разделе Мультиязычность.