Форум: "Базы";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];
Внизкак мне в таблицу записать следующие Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.036 c