Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.31;
Скачать: CL | DM;

Вниз

как мне в таблицу записать следующие   Найти похожие ветки 

 
ceval ©   (2005-06-23 13:40) [0]

Подскажите как мне в таблицу записать следующие:
есть таблица 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


 
Sergey13 ©   (2005-06-23 13:42) [1]

Table1SPEC.Value := ""
Table1SPEC.Value := Table1SPEC.Value + "3"


 
Val ©   (2005-06-23 13:52) [2]

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


 
ceval ©   (2005-06-23 14:13) [3]

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

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


 
Val ©   (2005-06-23 14:16) [4]

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


 
Sergey13 ©   (2005-06-23 14:16) [5]

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


 
ceval ©   (2005-06-23 14:19) [6]

Все ясно :(


 
ceval ©   (2005-06-23 14:33) [7]

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


 
evvcom ©   (2005-06-23 16:02) [8]

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


 
Sergey13 ©   (2005-06-23 16:09) [9]

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


 
evvcom ©   (2005-06-23 17:26) [10]


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

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



Страницы: 1 вся ветка

Текущий архив: 2005.07.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.044 c
1-1121170563
Bagdat
2005-07-12 16:16
2005.07.31
Работа с текстовым файлом


4-1117720650
DmitryShevelev
2005-06-02 17:57
2005.07.31
Delphi 6. Обработка ошибок в Graphics


14-1120565551
desam
2005-07-05 16:12
2005.07.31
Что дает сертификат?


3-1119714262
ali_tash
2005-06-25 19:44
2005.07.31
TDBLookupComboBoxEh


3-1119601614
Валерий
2005-06-24 12:26
2005.07.31
DBGrid - полный, а DBListBox - пустой