powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / CheckBox и TStringGrid
2 сообщений из 2, страница 1 из 1
CheckBox и TStringGrid
    #32167424
Sergio__BC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь короче создать Checkbox на гриде типа:

Grid: TStringGrid;
ChB: TCheckBox;
......

ChB:= TCheckBox.Create(Grid);
ChB.Parent:= Grid;

щелкаешь на него мышей - никакой реакции а хотелось бы что бы он включался - выключался - кто-нибудь знает чё делать то?

Заранее спасибо,
Sergio

ЗЫ: когда создаю его на форме - все работает
...
Рейтинг: 0 / 0
CheckBox и TStringGrid
    #32167831
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пример от Cat2


Re: Как вставить checkbox в Grid?

Просто кусок из проги c базой на ACCESS.

Определяешь перерисовку на onClick и на нажатие пробела.

Функция DBGrid1IsCheckBox(TField) определяет, надо ли рисовать CheckBox.

Умному достаточно.
procedure TMainForm.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
dc:HDC;
bcolor : TColor;
begin
if ADODataSetMain.recno>0 then
try
bcolor:=clWindow;
if not (gdSelected in State) then
begin
case ADODataSetMain.FieldByName('Код_Персонала').AsString of
'1' : bcolor:=$FFEFD5;
'2' : bcolor:=$EFFFD5;
'3' : bcolor:=$FFFFF0;

'4' : bcolor:=$E5EFDF;
'5' : bcolor:=$AFDFD5;
end;
DBGrid1.Canvas.Brush.Color:=bcolor
end;
if Column.FieldName='Объем_вид' then
if Column.Field.AsString<>'осн.' then
if not (gdSelected in State) then
DBGrid1.Canvas.Font.Color:=clRed
else
DBGrid1.Canvas.Font.Color:=clYellow;

dc:=DBGrid1.Canvas.Handle;
if DBGrid1IsCheckBox(column.Field) then
with DBGrid1.Canvas do
begin
FillRect( Rect );
if Column.Field.value=1 then
DrawFrameControl(dc,Rect, DFC_BUTTON , DFCS_CHECKED)
else
DrawFrameControl(dc,Rect ,DFC_BUTTON , DFCS_BUTTONCHECK)
end
else
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

except
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end
end;

procedure TMainForm.DBGrid1CellClick(Column: TColumn);
begin
if DBGrid1IsCheckBox(column.Field) then
begin
ADODataSetMain.Edit;
DBGrid1.SelectedField.AsInteger:=abs(DBGrid1.SelectedField.AsInteger-1);
ADODataSetMain.Post;
DBgrid1.Options:=DBgrid1.Options-[dgEditing];
end
end;





Надеюсь то что надо сам вытащишь
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / CheckBox и TStringGrid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]