DBGridEh и активная ячейка

Andrey Pogorelov

Привет всем.Подскажите, нужно выделить активную ячейку грида рамкой, делаю так:
<b>procedure</b> TForm41.DBGrid1DrawColumnCell(Sender: TObject; <b>const</b> Rect: TRect;
 DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
 <b>var</b>
 lRect: TRect;
<b>begin</b>
 <b>with</b> TDBGridEh(Sender).Canvas <b>do</b> <b>begin</b>
 <b>if</b> (gdSelected <b>in</b> State) <b>and</b> (Column.Index = DataCol) <b>then</b> <b>begin</b>
 lRect := Rect;
 Brush.Color:=clRed;
 FrameRect(lRect);
 <b>end</b>;
 <b>end</b>;
<b>end</b>;
В итоге ячейка вроде обведена красной рамкой, но поверх этой рамки еще что-то что мешает нормальному отображению, как это можно победить.
10 ответов

Andrey Pogorelov

поверх этой рамки еще что-то что мешает нормальному отображению
а в чём выражается проблема ? из скрина не совсем понятно


Andrey Pogorelov

По верх красной рамки идет серая пунктирная рамка, как от нее избавится


Andrey Pogorelov

А хотелось бы вот так


Andrey Pogorelov

StringGrid1.DefaultDrawing := False;


Andrey Pogorelov

сорь, проверял на TStringGrid


Andrey Pogorelov

...
 lRect.Left := Rect.Left+<b>1</b>;
... 
 lRect.Bottom := Rect.Bottom-<b>1</b>;
...


Andrey Pogorelov

...
 lRect.Left := Rect.Left+<b>1</b>;
... 
 lRect.Bottom := Rect.Bottom-<b>1</b>;
...
так пробовал, некрасиво получается


Andrey Pogorelov

попробуй в конце вызвать DefaultDrawColumnCell(Rect,DataCol,Column,State)


Andrey Pogorelov

хотя навряд ли, эта рамочка признак выделения и рисуется всегда если не указано gdRowSelect :-(


Andrey Pogorelov

Может гуру подскажут как к DBGridEh прикрутить сво-во goDrawFocusSelected