Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PopupMenu - как динамически менять язык, переключение языка 
V
    Опции темы
Gold Dragon
  Дата 29.8.2014, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



настал момент когда пришлось вспоминать Делфи и вот очень простые и банальные вопросы  smile 

Есть PopupMenu и мне нужно динамически менять язык в зависимости от выбора пользователя. Но никак не могу найти как обращаться к пунктам меню не по индексу, а по имени..

например так работает
Код

PopupMenu1.Items[0].Caption := Lang.ReadString('menutray', 'RESTORE', 'Восстановить');


а так соответвенно нет
Код

PopupMenu1.Items[N1].Caption := Lang.ReadString('menutray', 'RESTORE', 'Восстановить');



PS
и вообще такой способ переключения языка разумный? или есть более оптимальный способ?


Это сообщение отредактировал(а) Gold Dragon - 30.8.2014, 17:50


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
kami
Дата 29.8.2014, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Цитата(Gold Dragon @  29.8.2014,  10:44 Найти цитируемый пост)
или есть более оптимальный способ?

Вот тут было. Решений, избавляющих от подобного кода, много...

Добавлено через 1 минуту и 29 секунд
Цитата(Gold Dragon @  29.8.2014,  10:44 Найти цитируемый пост)
а по имени..

Код

N1.Caption:='';

Не?
PM MAIL WWW   Вверх
Keeper89
Дата 30.8.2014, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



Gold Dragon, 

один большой кусое кода, в стиле MenuItem.Caption := ..., как сказал уже kami.

Добавлено через 41 секунду
Сколько локализаторов я не пробовал, все мне не нравятся smile Так, что использую велосипеды в этом стиле.


--------------------
PM MAIL WWW   Вверх
Gold Dragon
Дата 1.9.2014, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Цитата(kami @  29.8.2014,  13:14 Найти цитируемый пост)
Не? 
Да, именно так! Просто не ожидал что можно обраться напрямую без упоминания PopupMenu1
Получается что имя будет уникальным на весь проект?

Цитата(Keeper89 @  30.8.2014,  15:23 Найти цитируемый пост)
один большой кусое кода, в стиле MenuItem.Caption := ..., как сказал уже kami.
Не понял о чём речь

Цитата(Keeper89 @  30.8.2014,  15:23 Найти цитируемый пост)
Сколько локализаторов я не пробовал, все мне не нравятся smile Так, что использую велосипеды в этом стиле. 
Я не совсем понимаю какие велосипеды есть в Делфи, кое что уже почитал.. Всё как-то стронно smile Я лично хотел сделать по аналогии в PHP, т.е. от туда и хотел перетащить принцип.
Просто есть куча языковых ini-файлов. При загрузке дастаём нужный язык. Всё это кидаем в глобальный массив (или константы, пока ещё не полял что будет удобнее и меньше будет кушать память). И везде по коду использую только эти значения



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Poseidon
Дата 1.9.2014, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(Gold Dragon @  1.9.2014,  08:00 Найти цитируемый пост)
Я не совсем понимаю какие велосипеды есть в Делфи
Лично я пользуюсь родным способом.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Gold Dragon
Дата 1.9.2014, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Цитата(Poseidon @  1.9.2014,  11:09 Найти цитируемый пост)
Лично я пользуюсь родным способом. 

Да, я тоже читал про это. Но мне кажется это не совсем удобно, т.е. я то хочу чтобы языки быле не "вшиты" в программу, а были оттельными файлами (например INI)

Хотя я только начал мудрить с языками smile Сейчас попробую реализовать свой "велосипед" и уж тогда буду сравнивать, а был ли вообще смысл  smile 

Тама закрыта. Вопрос локализации был в данном случае второстепенным ;)


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Poseidon
Дата 1.9.2014, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(Gold Dragon @  1.9.2014,  10:21 Найти цитируемый пост)
т.е. я то хочу чтобы языки быле не "вшиты" в программу, а были оттельными файлами (например INI)
Там они отдельными файлами и есть в виде Resource DLL.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Gold Dragon
Дата 1.9.2014, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



я ещё вернусь к вопросу локализации.. и тогда поговорим предметно. Сначала же нужно всё самому попробовать, а уж потом обсуждать  smile 


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.