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

Вниз

Статус DBCheckBox   Найти похожие ветки 

 
azl ©   (2007-12-23 23:32) [0]

Здравствуйте, уважаемые мастера.
Помогите разобраться.
На форме есть 2 DBCheckBox. Мне нужно, чтобы при нажатии на один DBCheckBox, если он отмечается птичкой, второй менял свой статус с true на false.
Делаю так:

Кликаю на DBCheckBox2, отмечаю его птичкой, затем кликаю на DBCheckBox1.

procedure TForm1.DBCheckBox1Click(Sender: TObject);
begin
 if DBCheckBox1.Checked then
    DBCheckBox2.Checked := false;
end;

procedure TForm1.Button1Сlick(Sender: TObject);
begin
 Form1.Table1.Post;
end;


Все бы ничего, да только после того, как сохраняю запись в таблицу (Table1.Post), значение записывается, как True, хотя DBCheckBox2 не отмечен птичкой.
Почему не меняется статус на False?

Спасибо за ответ.


 
sniknik ©   (2007-12-24 00:14) [1]

менять надо не в компоненте отображения а в данных...


 
sniknik ©   (2007-12-24 00:23) [2]

... причем там еще нужно отслеживать произошло изменение пользователем или это из данных значение считалось при переходе между записями например...
(onClick это общее событие)

проще всего конечно и менять в данных, датасете на бефорепост например, но и так как у тебя можно, несколько коряво правда (может можно и лучше но...)

так, примерно...
procedure TForm1.DBCheckBox1Click(Sender: TObject);
begin
 if isInHndlCng then
   if DBCheckBox1.Checked then begin
     Table1.Edit;
     Table1.FieldByName("FldOnDBCheckBox2").asBoolean:= false;
   end;
end;

procedure TForm1.DBCheckBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
 isInHndlCng:= Key = 32;
end;

procedure TForm1.DBCheckBox1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
 isInHndlCng:= false;
end;

procedure TForm1.DBCheckBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 isInHndlCng:= true;
end;

procedure TForm1.DBCheckBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 isInHndlCng:= false;
end;


 
Германн ©   (2007-12-24 00:59) [3]

Может вообще лучше обойтись простыми CheckBox"ами?


 
azl ©   (2007-12-24 01:20) [4]


> sniknik ©   (24.12.07 00:23) [2]

Спасибо огромное за подсказку.

> Германн ©   (24.12.07 00:59) [3]

Да, наверное, так и сделаю. Меньше возьни будет, чем с DBCheckBox. Я не думал, что все так не просто.


 
Германн ©   (2007-12-24 01:43) [5]


> Я не думал, что все так не просто.

Имхо с CheckBox"ами многое не просто. Где бы они ни были.


 
azl ©   (2007-12-24 01:48) [6]


> Германн ©   (24.12.07 01:43) [5]

С CheckBox"ами или DBCheckBox"ами?


 
Германн ©   (2007-12-24 01:59) [7]


> azl ©   (24.12.07 01:48) [6]
>
>

И с теми и с другими. Но я имел в виду не TCheckBox компонент как таковой, а CheckBox"ы встроенные в другие компоненты.


 
azl ©   (2007-12-24 02:18) [8]


> Германн ©   (24.12.07 01:59) [7]

Полностью согласен.
Я заменил в своей программе DBCheckBox на CheckBox.
В примере приведенном sniknik, я не понял, что такое isInHndlCng. Программа ругается, мол, нет такой переменной.


 
Германн ©   (2007-12-24 03:10) [9]


> azl ©   (24.12.07 02:18) [8]
>
>


> В примере приведенном sniknik, я не понял, что такое isInHndlCng.
>  Программа ругается, мол, нет такой переменной.
>

Это плохо, что не понял.


 
sniknik ©   (2007-12-24 03:14) [10]

> что такое isInHndlCng
буленовская переменная для сигнализации, что клик от юзеровсих действий (клавиши, мыш), а не при считывании значения из базы.
(имхо, очевидно из "как и где" она инициируется)


 
Германн ©   (2007-12-24 03:25) [11]


> sniknik ©   (24.12.07 03:14) [10]

Булева переменная, Коль. Булева!

P.S.
Хм. Звучит почти как в первой части "операции "Ы"" звучало "Надо,Федя! Надо!
:)))



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

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

Наверх




Память: 0.49 MB
Время: 0.016 c
6-1179331237
Juri
2007-05-16 20:00
2008.01.27
TWebBrowser Click


3-1190481366
monik
2007-09-22 21:16
2008.01.27
Активация роли приложения


15-1198017563
Dezigo
2007-12-19 01:39
2008.01.27
Калькулятор в строке


15-1198248427
авыф
2007-12-21 17:47
2008.01.27
нейронные сети


3-1190408298
Kostafey
2007-09-22 00:58
2008.01.27
Использование таблиц и полей в качестве параметров хранимых про-