
20.09.2011, 09:38
|
 |
Let Me Show You
|
|
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
|
|
Код:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
function ColorToBorderColor(AColor: TColor): TColor;
type
TColorQuad = record
Red,
Green,
Blue,
Alpha: Byte;
end;
begin
if (TColorQuad(AColor).Red > $c0) or
(TColorQuad(AColor).Green > $c0) or
(TColorQuad(AColor).Blue > $c0) then
Result := clBlack
else
Result := clWhite;
end;
begin
if not ClientDataSet1.FieldByName('Color').IsNull and not (gdSelected in State) then
begin
DBGrid1.Canvas.Brush.Color:=ClientDataSet1.FieldByName('Color').AsInteger;
DBGrid1.Canvas.Font.Color:=ColorToBorderColor(DBGrid1.Canvas.Brush.Color);
end;
DBGrid1.DefaultDrawDataCell(Rect, Field, State);
end;
http://data.cod.ru/124672
__________________
Пишу программы за еду.
__________________
|