Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2009, 21:10   #1
beemoto
Форумчанин
 
Аватар для beemoto
 
Регистрация: 11.04.2009
Сообщений: 277
Смех Combobox itemindex

народ!
помогите:
как мне сохранить в ини активный текст в комбобоксе!?
так пытаюсь:
Код:
  ini:= TIniFile.Create(extractfilepath(paramstr(0))+'Preferences.ini');
  ini.WriteBool('tools', 'Language', combobox1.Items.Count;
  ini.WriteBool('tools', 'Skin', edit1.text);
  ini.Free;
beemoto вне форума Ответить с цитированием
Старый 30.04.2009, 21:18   #2
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

WriteBool - Это запись булевского значения(boolean), записывать данные в ини-файл надо по типу значения.
Надо так:
Код:
  ini:= TIniFile.Create(extractfilepath(paramstr(0))+'Preferences.ini');
  ini.WriteInteger('tools', 'Language', combobox1.Items.Count);
  ini.WriteString('tools', 'Skin', edit1.text);
  ini.Free;
А если вам нужен активный текст в combobox'е, то надо написать например так:

Код:
 ini.WriteString('tools', 'Text', combobox1.Text); //так
 ini.WriteString('tools', 'Text', combobox1.Items[combobox1.ItemIndex]); //или так
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.

Последний раз редактировалось Neeter; 30.04.2009 в 21:25.
Neeter вне форума Ответить с цитированием
Старый 30.04.2009, 21:20   #3
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Странно, что ты везде пытаешься использовать WriteBool, хотя это применимо только к логическим переменным. Для строк используется WriteString, а для целых WriteInteger
Jeni вне форума Ответить с цитированием
Старый 30.04.2009, 21:37   #4
beemoto
Форумчанин
 
Аватар для beemoto
 
Регистрация: 11.04.2009
Сообщений: 277
По умолчанию

всё получилось ток (забыл=)) терь чтение немогу произвести:
Код:
  form2.combobox1.ItemIndex := ini.Readstring('tools', 'Language', true);
true - чёт немогу понять на чё нада замнеить...
beemoto вне форума Ответить с цитированием
Старый 30.04.2009, 21:41   #5
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Да... ItemIndex - это индекс, следовательно имеет тип integer или попросту целое.
Вы же читаете строку: ReadString, да причем в третьем параметре указываете булевское значение, а там надо писать значение по умолчанию:
Код:
form2.combobox1.ItemIndex := ini.Readinteger('tools', 'Language', 1);
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 30.04.2009, 21:48   #6
beemoto
Форумчанин
 
Аватар для beemoto
 
Регистрация: 11.04.2009
Сообщений: 277
По умолчанию

вот так зделал:
Код:
  form2.combobox1.ItemIndex := ini.Readinteger('tools', 'Language', ComboBox1.ItemIndex);
  form2.edit1.text := ini.Readstring('tools', 'Skin', edit1.Text);
но терь почемуто при запуске идет ощибка :
Acess violation at adress 004b5f55 in module и бла-бла-бла

в онкрите прописано:
Код:
  ini:= TIniFile.Create(extractfilepath(paramstr(0))+'Preferences.ini');
  form2.combobox1.ItemIndex := ini.Readinteger('tools', 'Language', ComboBox1.ItemIndex);
  form2.edit1.text := ini.Readstring('tools', 'Skin', edit1.Text);
  ini.Free;

Последний раз редактировалось Stilet; 06.05.2009 в 11:34.
beemoto вне форума Ответить с цитированием
Старый 30.04.2009, 21:54   #7
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Надо писать так:
Код:
  ini:= TIniFile.Create(extractfilepath(paramstr(0))+'Preferences.ini');
  form2.combobox1.ItemIndex := ini.Readinteger('tools', 'Language', 0); //Нельзя так писать, как было раньше, т.к. третий параметр - это значение по умолчанию, а вы присваиваете ему значение из самого combobox'а
  form2.edit1.text := ini.Readstring('tools', 'Skin', ''); //тут тоже надо вводить значение по умолчанию, но если не знаете что вводить, то вводите просто пустую строку
  ini.Free;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 30.04.2009, 21:58   #8
beemoto
Форумчанин
 
Аватар для beemoto
 
Регистрация: 11.04.2009
Сообщений: 277
По умолчанию

Neeter, всёравно ощибка выпалзает=(


----------------------->
я на второй странице

Последний раз редактировалось beemoto; 30.04.2009 в 22:26.
beemoto вне форума Ответить с цитированием
Старый 30.04.2009, 22:02   #9
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

А вы этот код случайно не при создании form1 пишете??
Если да, то переместите его в собитие формы onShow
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 30.04.2009, 22:13   #10
beemoto
Форумчанин
 
Аватар для beemoto
 
Регистрация: 11.04.2009
Сообщений: 277
По умолчанию

Neeter, да спасибо помогло,но:
значения каторые я изменил при запуске неизменяются=(
хотя в в самом ини всё есть
-------------------
и немоглибы раскзать в 2-уч словаах про onShow!?
beemoto вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический выбор ItemIndex в ComboBox Kib Общие вопросы Delphi 8 01.06.2011 19:06
Как последовательно изменить ItemIndex в ComboBox'е Oleg Romanchuk Общие вопросы Delphi 7 03.03.2009 09:23
Itemindex в Popupmenu Lich Общие вопросы Delphi 4 09.01.2009 21:37
Проблема с ComboBox.ItemIndex Селезин Общие вопросы Delphi 3 27.10.2007 16:42