![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как мне в таблицу записать следующие [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'