Specyficzny kolor paru pionowych lini w dbgridzie

0

Witam, moj problem jest nastepujacy: chce pare pionowych lini w dbgridzie zmienic na inny kolor niz standardowy gray. Na googlach znalazlem odpowiedz na problem jak zmienic kolor wszystkich lini w dbgridzie:

procedure TFFrekwencja.DBFrekwencjaDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var NewRect : TRect;
begin

  DBFrekwencja.Canvas.Brush.Color := clWhite;
  NewRect := Rect;
  NewRect.Left := NewRect.Left - 2;
  NewRect.Top := NewRect.Top - 2;
  DBFrekwencja.Canvas.FrameRect(NewRect);

end;

jednak mnie interesuje tylko pare lini pionowych, chce po prostu aby sie wyroznialy, reszta moze byc na standardowo. Podejrzewam, ze rowniez bede musial napisac jakis kodzik w zdarzeniu DBGRIDDrawColumnCell, tylko nie bardzo wiem jaki. Wie ktos moze jak rozwiazac ten problem ? z gory dziekuje za posty

0

Obwaruj to warunkami, coś w tym stylu :

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
    Rect1 : TRect;
begin
    if DataCol = 3 then begin
        Rect1.Left := Rect.Left - 1;
        Rect1.Top := Rect.Top - 1;
        Rect1.Right := Rect.Right + 1;
        Rect1.Bottom := Rect.Bottom + 1;

        DBGrid1.Canvas.Pen.Color := clRed;
        DBGrid1.Canvas.Moveto(Rect1.Left, Rect1.Top);
        DBGrid1.Canvas.LineTo(Rect1.Right, Rect1.Top);
        DBGrid1.Canvas.LineTo(Rect1.Right, Rect1.Bottom);
        DBGrid1.Canvas.LineTo(Rect1.Left, Rect1.Bottom);
        DBGrid1.Canvas.LineTo(Rect1.Left, Rect1.Top);
    end;
end;

Ten kod powinien ci pokolorować ramki komórek w kolumnie czwartej (powinien, bo nie sprawdzałem :) ).

0

Dzieki, zmodyfikowalem troche kodzik i wyszlo to co trzeba. pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1