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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2009, 22:24   #11
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Покажите весь ваш код.

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

Код:
procedure TForm1.FormShow(Sender: TObject);
begin
  ini:= TIniFile.Create(extractfilepath(paramstr(0))+'Preferences.ini');
  form2.combobox1.ItemIndex := ini.Readinteger('tools', 'Language', 0);
  form2.edit1.text := ini.Readstring('tools', 'Skin', '');
  ini.Free;
end;

вот всё без ощибок запускается, но в ини:
Код:
[tools]
Language=English
Skin=D:\NEW\delphi\Мои проэкты\в стадии разработки\HACKLine\skins\black
но нет ддействия((
beemoto вне форума Ответить с цитированием
Старый 30.04.2009, 22:44   #13
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Да потому, что у вас Language=English а загружаете вы в ItemIndex, значит надо писать в ини-файле например Language=0, это индекс выбранного элемента в combobox'e.
Так как нумерация начинается с нуля, то вы должны знать, какой индекс какому языку соответствует.
Если первым в combobox'e стоит English, то индекс равен 0, если он стоит вторым, то 1. Понятно?
Следовательно писать в ини-файле надо так:
Код:
[tools]
Language=0 //Но только если в combobox'е English стоит на первом месте
Skin=D:\NEW\delphi\Мои проэкты\в стадии разработки\HACKLine\skins\black
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 01.05.2009, 09:27   #14
beemoto
Форумчанин
 
Аватар для beemoto
 
Регистрация: 11.04.2009
Сообщений: 277
По умолчанию

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

и как я понял здесь тоже проблема:
Код:
  ini:= TIniFile.Create(extractfilepath(paramstr(0))+'Preferences.ini');
  ini.Writestring('tools', 'Language', combobox1.text);
  ini.Writestring('tools', 'Skin', edit1.text);
  ini.Free;
combobox1.text - мне нада заменить вроде на итеминдекс!?

Последний раз редактировалось Stilet; 06.05.2009 в 11:35.
beemoto вне форума Ответить с цитированием
Старый 01.05.2009, 09:45   #15
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

ну так combobox1.text и будет выбранное значение
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 01.05.2009, 09:45   #16
beemoto
Форумчанин
 
Аватар для beemoto
 
Регистрация: 11.04.2009
Сообщений: 277
По умолчанию

вот болеее чуть поправил:
Код:
  ini:= TIniFile.Create(extractfilepath(paramstr(0))+'Preferences.ini');
  ini.Writeinteger('tools', 'Language', ComboBox1.ItemIndex);
  ini.Writestring('tools', 'Skin', edit1.text);
  ini.Free;
в том то и дело записывает правильно но нечитает:
Код:
procedure TForm1.FormShow(Sender: TObject);
begin
  ini:= TIniFile.Create(extractfilepath(paramstr(0))+'Preferences.ini');
  form2.combobox1.ItemIndex := ini.Readinteger('tools', 'Language', 0);
  form2.edit1.text := ini.Readstring('tools', 'Skin', '');
  ini.Free;
end;
а вот текст в ини:
Код:
[tools]
Language=1
Skin=D:\NEW\delphi\Мои проэкты\в стадии разработки\HACKLine\skins\black
тут всё верно

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

Должно быть все верно...
Что написано в combobox'е (все свойство Items)?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 03.05.2009, 16:55   #18
beemoto
Форумчанин
 
Аватар для beemoto
 
Регистрация: 11.04.2009
Сообщений: 277
По умолчанию

Код:
Russian
English
beemoto вне форума Ответить с цитированием
Старый 03.05.2009, 17:24   #19
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Попробуйте сначала переместить в переменные в секцию public и при создании второй формы уже их читать:

Код:
//Первая форма
...
public
  SkinPath: string;
  LanguageIndex: integer;
...
procedure TForm1.FormShow(Sender: TObject);
begin
  ini:= TIniFile.Create(extractfilepath(paramstr(0))+'Preferences.ini');
  try
    LanguageIndex := ini.Readinteger('tools', 'Language', 0);
    SkinPath := ini.Readstring('tools', 'Skin', '');
  finally
    ini.Free;
  end;
end;
...
//Во второй форме
...
uses Form1;
...
procedure TForm.FormCreate(Sender: TObject)
begin
  Combobox1.ItemIndex := LanguageIndex;
  Edit1.Text := SkinPath;
end;
...
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 03.05.2009, 18:37   #20
beemoto
Форумчанин
 
Аватар для beemoto
 
Регистрация: 11.04.2009
Сообщений: 277
По умолчанию

на строчку SkinPath: string; ругается:
Код:
[Eror]=)(95): Field definition not allowed after methods or properties
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