Вниз
Скачать: CL | DM;

Как нарисовать CheckBox в DBGrid   Найти похожие ветки 

← →
ik   (2003-02-04 17:16) [0]

Как нарисовать CheckBox в DBGrid, таким образом, чтобы он был активным (т.е. на клик реагировал). Вот мой код, подскажите плз
:

procedure TNewDog.DocGridDrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);

var
R: TRect;
btn: UINT;

begin
if Field.FieldName="


← →
mate ©   (2003-02-04 17:31) [1]

Я вообще-то не рисовал CheckBox а сделал по другому, просто в нужную ячейку выводил нужный символ:

procedure TForm11.DBGrid1CellClick(Column: TColumn);
begin
if form11.Query1.RecordCount>0 then
begin
if (Column.FieldName="post")or(Column.FieldName="Post") then
begin
form11.DBGrid1.ReadOnly:=false;
form11.DataSource1.Edit;
if form11.Query1.FieldByName("post").Value="#" then
form11.Query1.FieldByName("post").Value:=""
else
form11.Query1.FieldByName("post").Value:="#";
form11.DBGrid1.ReadOnly:=true;
end;
form11.DBGrid1.SelectedIndex:=1;
end;
end;

procedure TForm11.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (Column.FieldName="post") then
begin
with form11.DBGrid1.Canvas do
begin
Brush.Color:=clWhite;
FillRect(Rect);
Font.Name:="Wingdings";
Font.Size:=-14;
if (form11.Query1.FieldByName("post").Value="#") then
begin
Font.Color:=clBlack;
TextOut(Rect.Right-3-DBGrid1.Canvas.TextWidth("ь"),Rect.Top+1,"ь");
moveto(rect.Left,rect.Bottom);
lineto(rect.Right,rect.Bottom);
end;
end;
end;




← →
Виталий Панасенко   (2003-02-04 17:52) [2]

А лучше не умничать, а использовать готовый DBGridEh из EhLib :-)))



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.015 c
3-63475
SasaR
2003-02-04 14:54
2003.02.20
InterBase


9-63468
artgamer
2002-09-14 00:06
2003.02.20
X-Com will be back (часть 2)


14-63814
Борец за свободу
2003-02-04 13:50
2003.02.20
Правда о Родине.


3-63491
BorisUK
2003-02-04 14:16
2003.02.20
обновление версии программы


14-63821
Holy
2003-02-04 13:01
2003.02.20
Харьковчане есть ?




   Наверх