Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ресурсы и строки

25K
11 ноября 2008 года
TheMustafa
33 / / 08.09.2008
Здравствуйте!

У меня есть файл ресурсов string.rc вида:
#define rsLabel98 2030
#define rsLabel99 2041
#define rsLabel90 2042
#define rsLabel20 2043
#define rsLabel97 2044
#define rsLabel94 2045
#define rsLabel22 2046
#define rsLabel242 2047
#define rsLabel251 2048
#define rsLabel241 2049
#define rsLabel240 2050

STRINGTABLE DISCARDABLE
BEGIN

rsLabel98 "<что-то>"
rsLabel99 "<что-то>"
rsLabel90 "<что-то>"
rsLabel20 "<что-то>"
rsLabel97 "..."
rsLabel94 "..."
rsLabel22 "..."
rsLabel242 "..."
rsLabel251 "..."
rsLabel241 "..."
rsLabel240 "..."
END

Я компилю его в длл-ку и при запуске программы в OnCreate делаю так:
hLibHandle = LoadLibrary("mydll.dll");
LoadString(hLibHandle, rsLabel98, szBuffer, 100);
Label98->Caption = szBuffer;
и т.д.
А если коспонетов тыща штук, как авматически сделать подстановку нужного Captiona к нужному компоненту?
288
11 ноября 2008 года
nikitozz
1.2K / / 09.03.2007
Обычный цикл. Также посмотрите в сторону свойства Components.
25K
11 ноября 2008 года
TheMustafa
33 / / 08.09.2008
Цитата: nikitozz
Обычный цикл. Также посмотрите в сторону свойства Components.



А можно поподробней? Лучше с примером? Что значит обычный цикл?
А если компоненты разные(ComboBox, RadioGroup, GroupBox и т.д.)?

288
11 ноября 2008 года
nikitozz
1.2K / / 09.03.2007
Цитата: TheMustafa
А можно поподробней? Лучше с примером? Что значит обычный цикл?
А если компоненты разные(ComboBox, RadioGroup, GroupBox и т.д.)?



Способов на самом деле множество. Определить что это именно Label, а не другой компонент можно по-разному. Например называть нужные Label'ы по определенной системе (например Label1, Label2, ..., LabelN) или с помощью того же dynamic_cast'а.
А определить какая именно строка нужна для этого компонента можно забив в его свойтсво tag идентификатор компонента.

Например

 
Код:
for (int i = 0; i < Form1->ComponentCount; i++)
        if (Form1->Components->Name.Pos("Label") > 0)
        {
            LoadString(hLibHandle, Form1->Components->Tag, szBuffer, 100);
            TLabel *pLabel = (TLabel *)Form1->Components;
            pLabel->Caption = szBuffer;
        }
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог