Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] ComboBox

Ответить
Настройки темы
Delphi - [решено] ComboBox

Аватара для Dodakaedr

Ветеран


Сообщения: 863
Благодарности: 262


Конфигурация

Профиль | Отправить PM | Цитировать


Имеется кнопка которая меняет весь текст программы. Подскажите как менять текст пунктов(Items) combobox'a при смене языка? Как задать новый текст?

-------
Inno Setup 5 Ultra Unicode


Отправлено: 18:24, 07-06-2015

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Dodakaedr:
Подскажите как менять текст пунктов(Items) combobox'a при смене языка? »
Удалить все пункты и добавить заново — так не подходит?
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:08, 07-06-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Dodakaedr

Ветеран


Сообщения: 863
Благодарности: 262

Профиль | Отправить PM | Цитировать


Цитата Iska:
Удалить все пункты и добавить заново — так не подходит? »
Как вариант попробую. И теперь еще один вопрос возник: так как список будет очищаться соответственно и выбор будет обнуляться. Как сохранить выбранный пункт при смене языка?

-------
Inno Setup 5 Ultra Unicode


Отправлено: 19:14, 07-06-2015 | #3


Аватара для K.A.V.

Ленивый кусок мяса


Contributor


Сообщения: 1986
Благодарности: 723

Профиль | Сайт | Отправить PM | Цитировать


Цитата Dodakaedr:
Как сохранить выбранный пункт при смене языка? »
Переменные отменили?
1. Перед очисткой пунктов получайте ID (1,2,3 и т.д.) текущего выбранного пункта (CB_GETCURSEL сообщение, если пишите на winapi)
2. Очищаете пункты (CB_RESETCONTENT, если пишите на winapi)
3. Заполняете пунктами (CB_ADDSTRING, если... )
4. Устанавливаете ту позицию, которую определили перед очисткой пунктов (CB_SETCURSEL, если... )

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]


Отправлено: 20:15, 07-06-2015 | #4


Аватара для Dodakaedr

Ветеран


Сообщения: 863
Благодарности: 262

Профиль | Отправить PM | Цитировать


Цитата K.A.V.:
если пишите на winapi »
нет, не на winapi.

-------
Inno Setup 5 Ultra Unicode


Отправлено: 20:42, 07-06-2015 | #5


Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


Можно ....для примера

Код: Выделить весь код
var
  SelectedItem: Integer;

......
procedure TForm1.FormCreate(Sender: TObject);
begin
 cbb1.Items.Clear;
 cbb1.Items.LoadFromFile('File_En'); // или TStringList (cbb1.Items.AddStrings)
 cbb1.ItemIndex:=0;
end;

procedure TForm1.cbb1Change(Sender: TObject);  
begin
  SelectedItem := cbb1.ItemIndex;
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
 cbb1.Items.Clear;
 cbb1.Items.LoadFromFile('File_Ru'); // или TStringList (cbb1.Items.AddStrings)
 cbb1.ItemIndex:=SelectedItem;
end;

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Последний раз редактировалось opel431, 07-06-2015 в 21:32.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:13, 07-06-2015 | #6


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1272
Благодарности: 1029

Профиль | Отправить PM | Цитировать


Dodakaedr, не забывайте про проверки. Если вдруг окажется так, что File_En не существует или пустой, то будет плохо с cbb1.ItemIndex:=0. Если File_Ru пустой или File_Ru содержит меньше строк, чем File_En и SelectedItem вдруг выходит за пределы количества строк в File_Ru, то будет плохо с cbb1.ItemIndex:=SelectedItem.
Скрытый текст

Код: Выделить весь код
var
  SelectedItem: Integer;

......
procedure TForm1.FormCreate(Sender: TObject);
begin
 cbb1.Items.Clear;
 cbb1.Items.LoadFromFile('File_En'); // или TStringList (cbb1.Items.AddStrings)
 if cbbl.Items.Count > 0 then
   cbb1.ItemIndex:=0;
end;

procedure TForm1.cbb1Change(Sender: TObject);
begin
  SelectedItem := cbb1.ItemIndex;
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
 cbb1.Items.Clear;
 cbb1.Items.LoadFromFile('File_Ru'); // или TStringList (cbb1.Items.AddStrings)
 if cbbl.Items.Count > 0 then
   if SelectedItem < cbbl.Items.Count then
     cbb1.ItemIndex:=SelectedItem
   else
     cbb1.ItemIndex:=0;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:45, 09-06-2015 | #7


Аватара для opel431

Ветеран


Contributor


Сообщения: 1803
Благодарности: 714

Профиль | Отправить PM | Цитировать


В окончательном виде исключить и другую возможную ошибку!
Изменение в одной из строк кода

Код: Выделить весь код
// или
var
  SelectedItem: Integer=0; // начальное значение

// или
procedure TForm1.FormCreate(Sender: TObject);
begin
 cbb1.Items.Clear;
 cbb1.Items.LoadFromFile('File_En'); // или TStringList (cbb1.Items.AddStrings)
 if cbbl.Items.Count > 0 then
 begin
   cbb1.ItemIndex:=0;
   SelectedItem := cbb1.ItemIndex; // начальное значение
 end;
end;

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Отправлено: 19:21, 09-06-2015 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] ComboBox

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Delphi - Работа с несколькими ComboBox Dreamer_UFA Программирование и базы данных 1 07-08-2013 13:01
[решено] использование данных из Combobox VNRed_OK AutoIt 4 13-02-2013 18:18
Delphi - [решено] сохранение значений ComboBox camope3 Программирование и базы данных 9 15-09-2011 22:45
Нужна помощь по ComboBox sacredboy AutoIt 17 09-09-2009 15:07
ComboBox в VB6 Vitki Программирование и базы данных 1 12-05-2004 10:08




 
Переход