Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как мне в таблицу записать следующие [D7]


ceval ©   (2005-06-23 13:40:00) 

Подскажите как мне в таблицу записать следующие:
есть таблица db с полем SPEC и например 4 CheckBox
мне надо записать в это поле отмечанные CheckBox'сы
пишу такой код:
...
var
   stat: integer;
begin
DataSource1.DataSet:=Table1;
 Table1.Open;
  stat:=2 ;
 if (Table1.State=dsBrowse) and (stat=2) then
 begin
  Table1.Insert;
 end;
 if (Table1.State=dsBrowse) and (stat=1) then
 begin
 Table1.Edit;
 end;
....
if CBSPEC1.State=cbChecked then  Table1SPEC.Value := '0';
 if CBSPEC2.State=cbChecked then  Table1SPEC.Value := '1';
  if CBSPEC3.State=cbChecked then  Table1SPEC.Value := '2';
   if CBSPEC4.State=cbChecked then  Table1SPEC.Value := '3';
 Table1.Post;
 Table1.Close;

Нужно в итоге получить такое:
если отмечины 1,2,3 то в поле SPEC должно быть 012
если отмечаны все то 0123
У меня получается сколько не отмечай записывается только первый отмечанный
CheckBox: отмечины 1,2,3 то в поле SPEC должно быть 012 - только 0


evvcom   (2005-06-23 17:26:00) [1]


> Copy-Paste и все дела. 8-)

Блин, и правда. А я уже и забыл такой способ. :)


Sergey13   (2005-06-23 16:09:00) [2]

2[8] evvcom ©   (23.06.05 16:02)
Copy-Paste и все дела. 8-)


evvcom   (2005-06-23 16:02:00) [3]

А теперь следующий этап в твоих познаниях. А если бы тебе надо было тысячу чекбоксов подчинить вышеприведенным правилам, как бы ты поступил?


ceval   (2005-06-23 14:33:00) [4]

Большое спасибо все нормально работает
 if CBSPEC2.State=cbChecked then  Table1SPEC.Value := Table1SPEC.Value + '1';


ceval   (2005-06-23 14:19:00) [5]

Все ясно :(


Val   (2005-06-23 14:16:00) [6]

конкатенация


Sergey13   (2005-06-23 14:16:00) [7]

2[3] ceval ©   (23.06.05 14:13)
>А что такое  + '3' ??
Тяжелый случай. А что такое  + '3' в твоем примере?
if CBSPEC4.State=cbChecked then  Table1SPEC.Value := '3';


ceval   (2005-06-23 14:13:00) [8]

Небольшое уточнения
отмечаю например 1 и 2 комбокс в таблицу долнжо записаться - 01, а записывается только - 1 последний комбокс.Как бы последний комбокс затирает все остальные

Table1SPEC.Value := Table1SPEC.Value + '3'
А что такое  + '3' ??


Val   (2005-06-23 13:52:00) [9]

По-моему - лучше целое поле и чекбокс - 1 бит. Мин.преимущество - наложение маски вместо парсинга строки, при определении состояний.
MyField.AsInteger := ord(CheckBox1.Checked) or ord(CheckBox2.Checked) shl(r) 2...


Sergey13   (2005-06-23 13:42:00) [10]

Table1SPEC.Value := ''
Table1SPEC.Value := Table1SPEC.Value + '3'


Наверх

Титульная страница Поиск, карта сайта Написать письмо