![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
StringGrid и пунктир if gdFocused (DrawFocusRect)?
Cosinus © (2004-10-08 15:30:00)Помогите найти и прибить кусок кода из Grids.pas, отвечающий за прорисовку курсивной линии, если
gdFocused in Stateвокруг активной ячейки. Вот не могу найти и все:(((
Леприкон (2004-10-11 07:24:00) [1]У меня получилось. Открыл файл Grids.pas, закомментировал все DrawFocusRect в нём, сохранил его в другом месте, затем "Add file to project" добавил его к проекту, после этого при компиляции уже брался он, а не Grids.dcu из Lib.
ЮЮ (2004-10-11 04:01:00) [2]DefaultDrawing = false и кроме сетки грида ничто тебя не побеспокоит :)
И теперь в OnDrawCell рисуешь что хочешь и как хочешь
Cosinus (2004-10-08 17:27:00) [3]
> Игорь Шевченко © (08.10.04 17:16) [4]
Вслух? Говорил. И даже монитор протирал - не помогает :)
А если серьезно, что вы имели ввиду?
Игорь Шевченко (2004-10-08 17:16:00) [4]
> Помогите найти и прибить кусок кода из Grids.pas, отвечающий
> за прорисовку курсивной линии, если gdFocused in State вокруг
> активной ячейки
Попробуй еще раз сказать DrawFocusRect
Cosinus (2004-10-08 16:57:00) [5]DrawFocusRect я все от безысходности прибил... Либо не то, либо я что то не так делаю.
ЗЫ А то, что это t
> в TCustomGrid процедуру Paint, в ней внутреннюю процедуру
> DrawCells
это в общем то как раз понятно :))))
Skeptik (2004-10-08 16:30:00) [6]посмотри: в TCustomGrid процедуру Paint, в ней внутреннюю процедуру DrawCells, а там ищи этот код (где-то в конце):
if DefaultDrawing and not (csDesigning in ComponentState) and
(gdFocused in DrawState) and
([goEditing, goAlwaysShowEditor] * Options <>
[goEditing, goAlwaysShowEditor])
and not (goRowSelect in Options) then
begin
if not UseRightToLeftAlignment then
DrawFocusRect(Canvas.Handle, Where)
else
begin
AWhere := Where;
AWhere.Left := Where.Right;
AWhere.Right := Where.Left;
DrawFocusRect(Canvas.Handle, AWhere);
end;
end;
но это только если not (goRowSelect in Options)
если интересует условие goRowSelect in Options,
то тогда в самой Paint ищи (тоже в конце):
if not (csDesigning in ComponentState) and
(goRowSelect in Options) and DefaultDrawing and Focused then
begin
GridRectToScreenRect(GetSelection, FocRect, False);
if not UseRightToLeftAlignment then
Canvas.DrawFocusRect(FocRect)
else
begin
AFocRect := FocRect;
AFocRect.Left := FocRect.Right;
AFocRect.Right := FocRect.Left;
DrawFocusRect(Canvas.Handle, AFocRect);
end;
end;
Леприкон (2004-10-08 16:19:00) [7]может где то в районе 1893 строки? (D7)