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

Вниз

как вставить CheckBox в Dbgrid ?   Найти похожие ветки 

 
Ulugbek   (2009-04-06 15:27) [0]

Привет всем!
Не получаеться у меня вставить чекбокс в DbGrid!
Использую Tclientdataset
открываю его select 0 as Logic,t.* from table1
в инете нашел такой код но не помагает..

procedure DrawGridCheckBox(Canvas: TCanvas; Rect: TRect; Checked: boolean);
var DF: Integer;
begin
 Canvas.TextRect(Rect, Rect.Left + 1, Rect.Top + 1, " ");
 DrawFrameControl(Canvas.Handle, Rect, DFC_BUTTON, DFCS_BUTTONPUSH or DFCS_ADJUSTRECT);
 DF:= DFCS_BUTTONCHECK or DFCS_ADJUSTRECT;
 if Checked then DF:= DF or DFCS_CHECKED;
 DrawFrameControl(Canvas.Handle, Rect, DFC_BUTTON, DF);
end;

procedure TfrmSpravMain.grdAccDrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
begin
 if Column.FieldName = "logic" then
 if Column.Field.AsInteger > 0 then
 DrawGridCheckBox(grdAcc.Canvas, Rect, true)
 else
 DrawGridCheckBox(grdAcc.Canvas, Rect, false)
end;

Спасибо за внимание


 
clickmaker ©   (2009-04-06 15:41) [1]

> но не помагает

не рисует? или что?


 
Ulugbek   (2009-04-06 15:43) [2]

аха не рисует...


 
Ega23 ©   (2009-04-06 16:15) [3]

UpperCase(Column.FieldName) = "LOGIC"
А так?


 
Ulugbek   (2009-04-06 16:47) [4]

Спасибо Ega23 получилось хоть что то..
Но теперь не могу галку ставить вставил код в событие ColEnter
у меня 0 это Uncheked а 1 cheked

with TDBGrid(Sender) do
   if SelectedField.FieldName = "LOGIC" then
     Options := Options - [dgEditing]
   else
     Options := Options + [dgEditing]

Как мне в клике 1 ставить?


 
clickmaker ©   (2009-04-06 16:55) [5]

> Как мне в клике 1 ставить?

меняй значение поля


 
Ega23 ©   (2009-04-06 16:58) [6]


> if SelectedField.FieldName = "LOGIC" then


"LoGiC" <> "lOgIc" <> "logic" <> "LOGIC".


 
Ulugbek   (2009-04-06 17:21) [7]

Ega23 по подробнее плз
 with TClientDBGrid(Sender) do
   if SelectedField.FieldName = "CBBOX" then
   "LoGiC" <> "lOgIc" <> "logic" <> "LOGIC".
     Options := Options - [dgEditing]
   else
     Options := Options + [dgEditing]


 
Игорь Шевченко ©   (2009-04-06 17:22) [8]


>    if SelectedField.FieldName = "CBBOX" then
>    "LoGiC" <> "lOgIc" <> "logic" <> "LOGIC".


бедный компилятор


 
Ega23 ©   (2009-04-06 17:32) [9]


> Ega23 по подробнее плз


Пожалуйста.

const
 c_FldName = "logIC";

procedure TForm1.Button1Click(Sender: TObject);
begin
 if Edit1.Text=c_FldName then
  ShowMessage("Yes")
 else
  ShowMessage("No");
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 if UpperCase(Edit1.Text)=UpperCase(c_FldName) then
  ShowMessage("Yes")
 else
  ShowMessage("No");
end;


Теперь подставь в Edit1 по очереди значения "LoGiC", "lOgIc","logic", "LOGIC".
Нажми каждый раз 2 кнопки.
Посмотри на результат.
Подумай.
Почитай про сравнения строк.
Подумай ещё раз.
Посмотри реализацию TDataSet.FieldByName в DB.pas



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

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

Наверх




Память: 0.49 MB
Время: 0.016 c
6-1203280510
Strate
2008-02-17 23:35
2009.05.24
Определение имени процесса, которому пришёл пакет.


3-1221456652
KirillRepin
2008-09-15 09:30
2009.05.24
Рисунок из БД в TImage


3-1221223824
KirillRepin
2008-09-12 16:50
2009.05.24
Загрузка рисунка из БД в TImage


4-1203581655
Начинающий
2008-02-21 11:14
2009.05.24
Кто обрабатывает нажатие на кнопку в MessageBox ?


15-1237973404
Юрий
2009-03-25 12:30
2009.05.24
С днем рождения ! 25 марта 2009 среда