Помогите разобраться с DBGrid

Модератор: Злобный

Ответить
Китайский сварщик
Юзер
Сообщения: 50
Зарегистрирован: Пн фев 02, 2004 22:39
Контактная информация:

Помогите разобраться с DBGrid

Сообщение Китайский сварщик »

У меня 2 вопроса:
1. Кака в TBGrid изменить цвет записи в зависимости от содержания определённого поля?
2. Если есть поле bool как в TBGrid показать его в виде CheckBox ?
кондратий
Юзер
Сообщения: 92
Зарегистрирован: Вт авг 20, 2002 17:12
Откуда: кишинёв
Контактная информация:

Сообщение кондратий »

1.
begin
if Table1.FieldByName('Population').AsFloat < 10000000 then
DBGrid1.Canvas.Font.Color := clRed;
dbGrid1.DefaultDrawDataCell(Rect,Field,State);
end;

2.
Вот основные шаги чтобы сделать это:
Создавайте и рисуйте TComboBox (CB) при получении ввода ячейки необходимой колонки табличной сетки
Получайте текущее значение поля (если имеется) и помещайте его в CB
После всех манипуляций, поместите новое значение обратно в поле
Избавляемся от CB
Китайский сварщик
Юзер
Сообщения: 50
Зарегистрирован: Пн фев 02, 2004 22:39
Контактная информация:

Сообщение Китайский сварщик »

Ещё один маленький вопросик: :shy:
Как написать оброботчик события для OnDrawColumnCell (DBGrid)
А то голова болит :kettle:
кондратий
Юзер
Сообщения: 92
Зарегистрирован: Вт авг 20, 2002 17:12
Откуда: кишинёв
Контактная информация:

Сообщение кондратий »

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
holdColor: TColor;
begin
holdColor := DBGrid1.Canvas.Brush.Color; {сохраняем оригинальный цвет}
if Column.FieldName = 'EmpNo' then {"раскрашиваем" ячейки только для поля EmpNo}
if (Column.Field.AsInteger mod 2 <> 0) then
begin
DBGrid1.Canvas.Brush.Color := clGreen;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
DBGrid1.Canvas.Brush.Color := holdColor;
end;
end;
Китайский сварщик
Юзер
Сообщения: 50
Зарегистрирован: Пн фев 02, 2004 22:39
Контактная информация:

Сообщение Китайский сварщик »

кондратий,
Санкс элот !!!!! :beer:
Аватара пользователя
Toklik
Юзер
Сообщения: 86
Зарегистрирован: Вс ноя 09, 2003 20:04
Откуда: Мой белый город
Контактная информация:

Сообщение Toklik »

Ребятки а это в каком языке?
Аватара пользователя
Белый С.
Завсегдатай
Сообщения: 2526
Зарегистрирован: Пн дек 22, 2003 22:43
Откуда: Выведен из аксиом
Контактная информация:

Сообщение Белый С. »

Toklik, на объектном паскале. А если ты про среду программирования, то на Дельфи (несложно перевести на С++ Билдер)
Аватара пользователя
Toklik
Юзер
Сообщения: 86
Зарегистрирован: Вс ноя 09, 2003 20:04
Откуда: Мой белый город
Контактная информация:

Сообщение Toklik »

Ясно!
Ответить

Вернуться в «Программирование»