Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.27;
Скачать: CL | DM;

Вниз

TStringGrid   Найти похожие ветки 

 
SaperXL   (2003-01-15 23:54) [0]

Мастера, подскажите пожалуйста, как в этом компоненте сделать, чтобы не было выделения активной ячейки таблицы. Дело в том, что она всегда синяя (полностью не согласуется с дизайном...), а мне вообще говоря нужно только показывать табло из строк, без перемещений по нему... Если нельзя совсем убрать выделения, то как хотя бы сделать его только по контуру ячейки, а не закрашиванием всей ячейки?


 
ЮЮ ©   (2003-01-16 03:04) [1]

DefaultDraw := false и вся отрисовка в OnDrawCell


 
Юрий Зотов ©   (2003-01-16 06:28) [2]

Уберите goDrawFocusSelected из Options, вот и все.


 
SaperXL   (2003-01-16 13:39) [3]

в Options у меня уже давно пусто
А DefaultDraw сносит всю прорисовку: прорисовку самих строк, закрашивание фиксированной зоны... Это что же полегче нет ничего?


 
gsu ©   (2003-01-16 13:53) [4]

в OnDrawCell можно нарисовать почти все
полегче, попробуй установить цвет активной ячейки таким же как цвет сетки


 
SaperXL   (2003-01-16 13:55) [5]

не понял...
Что значит нарисовать все полегче?
А где установить цвет активной ячейки?


 
gsu ©   (2003-01-16 14:07) [6]

сорри про установку, имелась в виду перерисовка ячейки


 
Cu ©   (2003-01-16 14:43) [7]

бррр а по-моему помогает установка
goRangeSelect в false :-/ (in Options)


 
SaperXL   (2003-01-20 04:19) [8]

Повторяю: в Options ни одно св-во не уст. в true...


 
Юрий Зотов ©   (2003-01-20 06:38) [9]

Не знаю, кто тут кому пудрит, извините, мозги, но вот только что проверил и убедился, что goDrawFocusSelected прекрасненько работает - включает и выключает подсветку ячейки цветом clHighlight.

В чем, собственно, и сомнений не было. И что и было сказано с самого начала. И если у Вас Options действительно пусто, то проблема непонятна.


 
MBo ©   (2003-01-20 06:48) [10]

procedure TForm1.StringGrid1Exit(Sender: TObject);
begin
StringGrid1.Selection:=TGridRect(Rect(-1,-1,-1,-1));
end;

И при необходимости CanSelect:=False в OnSelectCell


 
ЮЮ ©   (2003-01-20 06:57) [11]

TCustomGrid.Paint

if DefaultDrawing or (csDesigning in ComponentState) then
with Canvas do
begin
Font := Self.Font;
if (gdSelected in DrawState) and
(not (gdFocused in DrawState) or
([goDrawFocusSelected, goRowSelect] * Options <> [])) then
begin
Brush.Color := clHighlight;
Font.Color := clHighlightText;

end
else
Brush.Color := Color;
FillRect(Where);
end;
DrawCell(CurCol, CurRow, Where, DrawState);


Поэтому никак ты не избавишься от синего квадрата, пока не установишь DefaultDrawing в False

>А DefaultDraw сносит всю прорисовку: прорисовку самих строк, закрашивание фиксированной зоны... Это что же полегче нет ничего?

Не так уж там и много писать, зато всё в твоих руках
procedure TForm1.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
with TStringGrid(Sender) do
if gdFixed in State then
DefaultDrawing := true // это пусть рисует сам
else begin
DefaultDrawing := false;
Canvas.Brush.Color := Color;
Canvas.FillRect(Rect);
if gdSelected in State then begin
Canvas.Brush.Color := clBlue;
Canvas.FrameRect(Rect);
InflateRect(Rect, -1, -1);
Canvas.Brush.Color := Color;
Canvas.TextRect(Rect, Rect.Left, Rect.Top, Cells[ACol, ARow]);
end;
end;
end;





 
ЮЮ ©   (2003-01-20 07:01) [12]

>Юрий Зотов © (20.01.03 06:38)
Не знаю, кто тут кому пудрит, извините, мозги, но вот только что проверил и убедился, что goDrawFocusSelected прекрасненько работает - включает и выключает подсветку ячейки цветом clHighlight.

Только когда StringGrid в фокусе. Поставь два StringGrid и всё летит ко всем чертям :-)


 
SaperXL   (2003-01-20 07:58) [13]

Ага, вопрос оказался глобальней... Простите, но мне противно писать программы на Дельфи со структурой чистых API-программ на голом C++. Мне кажется, что Дельфя для того и существует, чтобы Я этого не делал... Хотя по-другому видимо никак...
Всем спасибо.



Страницы: 1 вся ветка

Текущий архив: 2003.01.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
14-87046
gsu
2003-01-11 14:38
2003.01.27
Вопрос в догонку


1-86851
Cobalt
2003-01-19 17:45
2003.01.27
Этот кусок кода компилится нормально, но компилятор


3-86714
anton2v
2003-01-09 17:46
2003.01.27
Работа с dbf альтернативой BDE


3-86675
dkok
2003-01-06 15:17
2003.01.27
Есть ли окраничения на процедуры Interbase?


14-87035
Феликс
2003-01-03 21:40
2003.01.27
---|Ветка была без названия|---