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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2014, 07:58   #1
Mik92
Пользователь
 
Регистрация: 25.08.2014
Сообщений: 87
По умолчанию Нужна помощь с checkbox и его состоянием

Сидел, думал, все таки надумал. Поскольку у меня checkbox'ов много приходится много строк писать. Придумал немного другой способ но вся мозаика не складывается в голове. Чтобы не писать постоянно одно и тоже
Код:
if CheckBox1.State = cbUnchecked then тест1:=false
     else тест1:=True;
if CheckBox2.State = cbUnchecked then тест2:=false
     else тест2:=True;
if CheckBox3.State = cbUnchecked then тест3:=false
     else тест3:=True;
Решил подумать над кодом
Код:
var
тест1, тест2, тест3: Boolean;
...
  for i:= 1 to 50 do
  begin
    sCB:= TCheckBox(FindComponent('CheckBox' + IntToStr(i)));
    if Assigned(sCB) then
    begin

      end else begin

      end;
    end;
  end;
И вот собственно в чем заключается задача. Нужно записать состояние чекбокса в boolean при этом не забыть то что у каждого чекбокса есть свое название и это название я хотел бы потом записать в ini файл. Помогите
Mik92 вне форума Ответить с цитированием
Старый 24.12.2014, 08:06   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А что название? Оно известно - 'CheckBox' + IntToStr(i).
И if-ов не нужно:
Код:
var Checkeds: array [1..50] of Boolean;
...
Checkeds[i]:=sCB.Checked;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.12.2014, 08:55   #3
Mik92
Пользователь
 
Регистрация: 25.08.2014
Сообщений: 87
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А что название? Оно известно - 'CheckBox' + IntToStr(i).
И if-ов не нужно:
Код:
var Checkeds: array [1..50] of Boolean;
...
Checkeds[i]:=sCB.Checked;
Я хотел бы после, записать значения в ini файл с caption чекбокса. И видимо из за этого не до конца все понимал как код правильно составить.
Mik92 вне форума Ответить с цитированием
Старый 24.12.2014, 10:36   #4
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Цитата:
Сообщение от Mik92 Посмотреть сообщение
Чтобы не писать постоянно одно и тоже
Код:
if CheckBox1.State = cbUnchecked then тест1:=false
     else тест1:=True;
if CheckBox2.State = cbUnchecked then тест2:=false
     else тест2:=True;
if CheckBox3.State = cbUnchecked then тест3:=false
     else тест3:=True;
Код:
  test1:= true = CheckBox1.Checked;
Iron Monk вне форума Ответить с цитированием
Старый 24.12.2014, 10:45   #5
Mik92
Пользователь
 
Регистрация: 25.08.2014
Сообщений: 87
По умолчанию

Цитата:
Сообщение от Iron Monk Посмотреть сообщение
Код:
  test1:= true = CheckBox1.Checked;
Я пытаюсь сделать перебор всех чекбоксов при этом получить их caption и записать в ini файл их состояние что то в роде
тест1=1 (если состояние checked)
но завис на получении названия, слишком много кода и все в голове запуталось
Mik92 вне форума Ответить с цитированием
Старый 24.12.2014, 10:45   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
test1:= CheckBox1.Checked
уж тогда
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.12.2014, 11:06   #7
Mik92
Пользователь
 
Регистрация: 25.08.2014
Сообщений: 87
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код:
test1:= CheckBox1.Checked
уж тогда
Я то и прошую помощи, дело в том что я не хочу тратить на сохранение настроек кучу места в коде.. вот и ищу лучший вариант сохранения без лишних строк.
Mik92 вне форума Ответить с цитированием
Старый 24.12.2014, 11:12   #8
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Код:
var
  test: array [1..50] of Boolean;
  i: integer;
  tmpCB:TComponent;
 _iniF: TIniFile;
begin
  _iniF:= TIniFile.Create('C:\test.ini');
  for i:=1 to 50 do
  begin
      tmpCB:=FindComponent(Format('CheckBox%d',[i]));
      test[i]:= (tmpCB as TCheckBox).Checked;
      _iniF.WriteBool('SETUP',Format('CheckBox%d',[i]),test[i]);
    end;
    _iniF.Free;
  end;
Iron Monk вне форума Ответить с цитированием
Старый 24.12.2014, 11:43   #9
Mik92
Пользователь
 
Регистрация: 25.08.2014
Сообщений: 87
По умолчанию

Цитата:
Сообщение от Iron Monk Посмотреть сообщение
Код:
var
  test: array [1..50] of Boolean;
  i: integer;
  tmpCB:TComponent;
 _iniF: TIniFile;
begin
  _iniF:= TIniFile.Create('C:\test.ini');
  for i:=1 to 50 do
  begin
      tmpCB:=FindComponent(Format('CheckBox%d',[i]));
      test[i]:= (tmpCB as TCheckBox).Checked;
      _iniF.WriteBool('SETUP',Format('CheckBox%d',[i]),test[i]);
    end;
    _iniF.Free;
  end;
Спасибо за помощь! Почти то что я хотел но я поправлю.
Mik92 вне форума Ответить с цитированием
Старый 24.12.2014, 12:17   #10
Mik92
Пользователь
 
Регистрация: 25.08.2014
Сообщений: 87
По умолчанию

Цитата:
Сообщение от Iron Monk Посмотреть сообщение
Код:
var
  test: array [1..50] of Boolean;
  i: integer;
  tmpCB:TComponent;
 _iniF: TIniFile;
begin
  _iniF:= TIniFile.Create('C:\test.ini');
  for i:=1 to 50 do
  begin
      tmpCB:=FindComponent(Format('CheckBox%d',[i]));
      test[i]:= (tmpCB as TCheckBox).Checked;
      _iniF.WriteBool('SETUP',Format('CheckBox%d',[i]),test[i]);
    end;
    _iniF.Free;
  end;
Вроде все элементарно, как загрузить теперь по такому же способу из ini файла?
Mik92 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь по сохранению в файл и открытие его... vityanya Общие вопросы Delphi 33 08.08.2010 17:48
CheckBox и его размер. katttes Компоненты Delphi 5 03.04.2010 19:28
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 12:24
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) 5Paladin5 Помощь студентам 3 02.07.2009 09:12
Нужна помощь(Разработать алгоритм, нарисовать его блок-схему.) miron Помощь студентам 4 26.02.2008 12:08