Страница 1 из 1
Как со StringGrid убрать выделения ячейки?
Добавлено: 30 мар 2005, 07:34
forform
Дело в том, что StringGrid при потере фокуса свою активную ячейку выделяет синим фоном (в том случае когда на одной форме 2 или больше таблиц!) . Как от этого избавиться?
Добавлено: 30 мар 2005, 10:34
LAngel
Дело в том, что StringGrid при потере фокуса свою активную ячейку выделяет синим фоном (в том случае когда на одной форме 2 или больше таблиц!) . Как от этого избавиться?
Впринципе, можно обрабатывать DrawCell, тогда можно рисовать вид StringGrid'а по своему желанию. DefaultDrawing := False.
Пример обработчика 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;
Добавлено: 01 апр 2005, 12:37
Naeel Maqsudov
Можно использовать библиотеку RxLib
Там у гридов есть свойства, которые это регулируют.
Еще попробуйте (у стандартного грида) опцию AlwaysHsowEditor, не уверен, но помоему тоже поможет.