Показать сообщение отдельно
  #7  
Старый 20.09.2011, 09:38
Аватар для NumLock
NumLock NumLock вне форума
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
__________________
Пишу программы за еду.
__________________
Ответить с цитированием