Страница 1 из 1
Помогите разобраться с DBGrid
Добавлено: Пн фев 16, 2004 17:34
Китайский сварщик
У меня 2 вопроса:
1. Кака в TBGrid изменить цвет записи в зависимости от содержания определённого поля?
2. Если есть поле bool как в TBGrid показать его в виде CheckBox ?
Добавлено: Пн фев 16, 2004 23:07
кондратий
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
Добавлено: Вт фев 17, 2004 02:24
Китайский сварщик
Ещё один маленький вопросик:
Как написать оброботчик события для OnDrawColumnCell (DBGrid)
А то голова болит

Добавлено: Вт фев 17, 2004 02:56
кондратий
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;
Добавлено: Вт фев 17, 2004 12:23
Китайский сварщик
кондратий,
Санкс элот !!!!!

Добавлено: Ср мар 03, 2004 01:45
Toklik
Ребятки а это в каком языке?
Добавлено: Ср мар 03, 2004 03:37
Белый С.
Toklik, на объектном паскале. А если ты про среду программирования, то на Дельфи (несложно перевести на С++ Билдер)
Добавлено: Ср мар 03, 2004 10:01
Toklik
Ясно!