Как со StringGrid убрать выделения ячейки?
Дело в том, что StringGrid при потере фокуса свою активную ячейку выделяет синим фоном (в том случае когда на одной форме 2 или больше таблиц!) . Как от этого избавиться?
Впринципе, можно обрабатывать DrawCell, тогда можно рисовать вид StringGrid'а по своему желанию. DefaultDrawing := False.Дело в том, что StringGrid при потере фокуса свою активную ячейку выделяет синим фоном (в том случае когда на одной форме 2 или больше таблиц!) . Как от этого избавиться?
Пример обработчика DrawCell:
Код: Выделить всё
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
Var
StringGrid: TStringGrid;
Can: TCanvas;
begin
StringGrid := Sender as TStringGrid;
Can := StringGrid.Canvas;
Can.Font := StringGrid.Font;
if (ARow >= StringGrid.FixedRows) and (ACol >= StringGrid.FixedCols)
then Can.Brush.Color := StringGrid.Color
else Can.Brush.Color := StringGrid.FixedColor;
If ActiveControl = Sender then // Эта строка "выключает" выделение
if (gdSelected in State) then
begin
Can.Font.Color := clHighlightText;
Can.Brush.Color := clHighlight;
end;
Can.FillRect(Rect);
Can.TextOut(Rect.Left+2,Rect.Top+2, StringGrid.Cells[ACol, ARow]);
end;
С уважением, Lost Angel...
- Naeel Maqsudov
- Сообщения: 2551
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Можно использовать библиотеку RxLib
Там у гридов есть свойства, которые это регулируют.
Еще попробуйте (у стандартного грида) опцию AlwaysHsowEditor, не уверен, но помоему тоже поможет.
Там у гридов есть свойства, которые это регулируют.
Еще попробуйте (у стандартного грида) опцию AlwaysHsowEditor, не уверен, но помоему тоже поможет.