Форум: "Начинающим";
Текущий архив: 2009.05.24;
Скачать: [xml.tar.bz2];
Внизкак вставить 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c