![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ini + checbox
Inslave © (2008-01-28 20:23:00)Господа, вопрос в следующем: Имеется три checkbox'са. Из Ini-файла считываетя значение [от 1 до 3].
Если в файле значение 1 то при инициализации формы (OnCreate), checkbox1 должен стать равным true (значения 2 и 3 соответственно должны check'идить). Но вот в чем проблема:
обработчик OnCreate
FAppIni := TIniFile.Create(ExtractFilePath(Application.ExeName) + filename_IniFile);
далее счтываю с помощью ReadInteger значение (здесь все работает корректно). Потом в зависимости от значения присваиваю checkbox := true.
При получении какого-либо значения checkbox все чекбоксы остаются в False. Почему ?
ASoft (2008-01-30 03:23:00) [1]PS: оказывается, автор уже "перескочил" на другую тему, про радиокнопки:-)
ASoft (2008-01-30 03:10:00) [2]
> Плохиш © (29.01.08 10:46) [17]
> Интересная логика.
Ничего интересного
> Inslave (28.01.08 20:43) [5]
>
> ------------Ini-файл:
> [Setup]
> Update=1
>
> -----------OnCreate:
>....
> Value := FAppIni.ReadString(selection_Setup, Ident, Default);
> // const
> case Value of
> 1: CheckBox1.Checked := True;
> 2: CheckBox2.Checked := True;
> 3: CheckBox3.Checked := True;
> end;
считывается одно значение из 3-х, а значит, при создании формы, только один чекед может быть истина.
Наверняка, у автора, нечто подобное (должно быть) и при записи ini, Defaultпринимает одно из 3-х значений. Это логика радиокнопок, а не чекбоксов имхо
Плохиш (2008-01-29 10:46:00) [3]
> имхо, по логике, значение из ini-файла должно применяться
> к радиокнопкам, а не к чекбоксам
Интересная логика.
Vladimir (2008-01-29 07:43:00) [4]Вариант:
CheckBox1.Checked := Value = 1;
CheckBox2.Checked := Value = 2;
CheckBox3.Checked := Value = 3;
и еще раз проверить обработчики событий чекбоксов и манипуляции с ними по всему коду.
ASoft (2008-01-29 04:09:00) [5]
> Inslave (28.01.08 21:11) [13]
имхо, по логике, значение из ini-файла должно применяться к радиокнопкам, а не к чекбоксам
По сабжу, может filename_IniFile, selection_Setup, Ident, Defaultс этими переменными что-нибудь не так?
Германн (2008-01-28 21:49:00) [6]
> Inslave (28.01.08 21:11) [13]
> Нужно сделать в первоначальном варианте
Первоначальный вариант абсолютно рабочий.
Inslave (2008-01-28 21:11:00) [7]Работает только в том случае если, первоначально свойствам 3-x Checked'ов назначить True, а потом, а потом в зависимости от параметра ставить Checked в False.
Т.е. такой код будет рабочий (если первоначально контролам выставить checked - false). Но такой код не подойдет. Нужнро сделать в первоначальном варианте
------------Ini-файл:
[Setup]
Update=1
-----------OnCreate:
procedure Tform_SetSetupImage.FormCreate(Sender: TObject);
var
Value: Integer;
begin
FAppIni := TIniFile.Create(ExtractFilePath(Application.ExeName)
+ filename_IniFile);
Value := FAppIni.ReadInteger(selection_Setup, Ident, Default); // const
case Value of
1:
begin
CheckBox2.Checked := False;
CheckBox3.Checked := False;
end;
2:
begin
CheckBox1.Checked := False;
CheckBox3.Checked := False;
end;
3:
begin
CheckBox1.Checked := False;
CheckBox2.Checked := False;
end;
end;
Германн (2008-01-28 21:05:00) [8]
> Inslave (28.01.08 21:03) [11]
>
> Обработчики OnClick у CheckBox'ов не задействаны. При инициализации
> формы должна ставиться галочка исходя из параметра инифайла
> (Я привел все обработчики)
>
Значит где-то врешь. Должно работать.
Inslave (2008-01-28 21:03:00) [9]Обработчики OnClick у CheckBox'ов не задействаны. При инициализации формы должна ставиться галочка исходя из параметра инифайла (Я привел все обработчики)
Германн (2008-01-28 20:59:00) [10]
> Inslave (28.01.08 20:48) [8]
Обработчики OnClick у CheckBox'ов задействаны?
Семеныч (2008-01-28 20:54:00) [11]Еще какие-то обработчики у формы есть? OnShow, например.
Inslave (2008-01-28 20:48:00) [12]Смотрел. Здесь все работае корректно. Value равно значению в файле.
Германн (2008-01-28 20:46:00) [13]
> Value := FAppIni.ReadInteger(selection_Setup, Ident, Default);
Чему равно Value отладчиком смотрел?
Inslave (2008-01-28 20:45:00) [14]Sorry - небольшая ошибочка (ReadInteger)
------------Ini-файл:
[Setup]
Update=1
-----------OnCreate:
procedure Tform_SetSetupImage.FormCreate(Sender: TObject);
var
Value: Integer;
begin
FAppIni := TIniFile.Create(ExtractFilePath(Application.ExeName)
+ filename_IniFile);
Value := FAppIni.ReadInteger(selection_Setup, Ident, Default); // const
case Value of
1: CheckBox1.Checked := True;
2: CheckBox2.Checked := True;
3: CheckBox3.Checked := True;
end;
Inslave (2008-01-28 20:43:00) [15]------------Ini-файл:
[Setup]
Update=1
-----------OnCreate:
procedure Tform_SetSetupImage.FormCreate(Sender: TObject);
var
Value: Integer;
begin
FAppIni := TIniFile.Create(ExtractFilePath(Application.ExeName)
+ filename_IniFile);
Value := FAppIni.ReadString(selection_Setup, Ident, Default); // const
case Value of
1: CheckBox1.Checked := True;
2: CheckBox2.Checked := True;
3: CheckBox3.Checked := True;
end;
Семеныч (2008-01-28 20:35:00) [16]Чудес не бывает. Давайте полный код OnCreate и текст Ini-файла.
Inslave (2008-01-28 20:34:00) [17]CheckBox.Checked := True (Я же словами описываю алгоритм)
JusteR (2008-01-28 20:33:00) [18]CheckBox.Checked := True (Я же словами описываю алгоритм)
Германн (2008-01-28 20:31:00) [19]
> checkbox := true
Это что такое?