Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » CheckBox в Ячейке DBGrid

Ответить
Настройки темы
CheckBox в Ячейке DBGrid

Аватара для Loki3D

Старожил


Сообщения: 362
Благодарности: 12

Профиль | Отправить PM | Цитировать


Подскажите по подробнее как сделать Чтоб в Ячейке Grida Рисовались CHeckBoxы.
Задача такая..
Имеется изначально Пустая Таблица с Полями типа Boolean
По нажатии Кнопки Должна Добавиться Запись, забивающая все поля Значениями False.Мне надо чобы не было Надписи False а Был CheckBox (Checked:= False). Если на CheckBoxe поставить Галку, то от Этого должно изменяться Значение в Ячейке с False на True и на оборот по сути, а Визуально False\True belen отображаться CheckBox'ами со свойсвтом Chacked := Fasle\True соответсвенно.

Подскажите подробно, а то я Чайник в этом деле.. и если нормально объяснить, то потом лишний раз не спрошу.

Заранее Спасибо

-------
sory 4 my rus


Отправлено: 20:45, 29-08-2005

 

Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


чтобы не искать линк, вырезка из ФАКа:
Цитата:
Как добавить TCheckBox в TStringGrid?
Пример демонстрирует добавление любого количества чекбоксов в StringGrid.
В этом примере необходимо добавить TPanel, а в саму панель включить TstringGrid.
Так же необходимо добавить невидимый TcheckBox на форму. Затем добавьте
5 колонок и 4 строки в объект StringGrid.

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
ShowMessage('There it is!!');
end;

// Заполняем заголовок StringGrid
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0] := 'A Simple';
StringGrid1.Cells[1,0] := 'Way';
StringGrid1.Cells[2,0] := 'To';
StringGrid1.Cells[3,0] := 'Do It';
StringGrid1.Cells[4,0] := 'Check !!';

AddCheckBoxes; // добавляем чекбоксы...
end;

procedure TForm1.AddCheckBoxes;
var
i: Integer;
NewCheckBox: TCheckBox;
begin
clean_previus_buffer; // очищаем неиспользуемые чекбоксы...

for i := 1 to 4 do
begin
StringGrid1.Cells[0,i] := 'a';
StringGrid1.Cells[1,i] := 'b';
StringGrid1.Cells[2,i] := 'c';
StringGrid1.Cells[3,i] := 'd';

NewCheckBox := TCheckBox.Create(Application);
NewCheckBox.Width := 0;
NewCheckBox.Visible := false;
NewCheckBox.Caption := 'OK';
NewCheckBox.Color := clWindow;
NewCheckBox.Tag := i;
NewCheckBox.OnClick := CheckBox1.OnClick; //Связываем предыдущее событие OnClick
// с существующим TCheckBox
NewCheckBox.Parent := Panel1;

StringGrid1.Objects[4,i] := NewCheckBox;
StringGrid1.RowCount := i;
end;
set_checkbox_alignment; // расположение чекбоксов в ячейках таблицы...
end;

Procedure TForm1.clean_previus_buffer;
var
NewCheckBox: TCheckBox;
i: Integer;
begin
for i := 1 to StringGrid1.RowCount do
begin
NewCheckBox := (StringGrid1.Objects[4,i] as TCheckBox);
if NewCheckBox <> nil then
begin
NewCheckBox.Visible := false;
StringGrid1.Objects[4,i] := nil;
end;
end;
end;

Procedure TForm1.set_checkbox_alignment;
var
NewCheckBox: TCheckBox;
Rect: TRect;
i: Integer;
begin
for i := 1 to StringGrid1.RowCount do
begin
NewCheckBox := (StringGrid1.Objects[4,i] as TCheckBox);
if NewCheckBox <> nil then
begin
Rect := StringGrid1.CellRect(4,i); // получаем размер ячейки для чекбокса
NewCheckBox.Left := StringGrid1.Left + Rect.Left+2;
NewCheckBox.Top := StringGrid1.Top + Rect.Top+2;
NewCheckBox.Width := Rect.Right - Rect.Left;
NewCheckBox.Height := Rect.Bottom - Rect.Top;
NewCheckBox.Visible := True;
end;
end;
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if not (gdFixed in State) then
set_checkbox_alignment;
end;

Отправлено: 14:39, 30-08-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Loki3D

Старожил


Сообщения: 362
Благодарности: 12

Профиль | Отправить PM | Цитировать


опробовал предложенный пример, только вместо StringGrid использовал DBGrid/ Не получилось Скомпелировать.. не зная чем можно заменить StringGrid1.Objects у DBGrid.. ща пробую другие варианты..

-------
sory 4 my rus


Отправлено: 16:54, 31-08-2005 | #3


Аватара для Loki3D

Старожил


Сообщения: 362
Благодарности: 12

Профиль | Отправить PM | Цитировать


Всем спасибо за помощь..
Во всех моих запросах мне помог Компонент DBGridEH

-------
sory 4 my rus


Отправлено: 22:54, 31-08-2005 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » CheckBox в Ячейке DBGrid

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Использование функций VBa в ячейке Excel. pingUIN Хочу все знать 1 04-12-2009 15:59
Прочие БД - DBGrid Molchun78 Программирование и базы данных 9 01-01-2009 16:36
Как понимать две цифры в ячейке Скорость передачи данных, Кбит/с? united Хочу все знать 16 03-11-2008 01:21
DBGrid Guest Программирование и базы данных 8 13-11-2003 16:06
DBGrid khvalera Программирование и базы данных 4 06-07-2003 13:39




 
Переход