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

Вниз

StringGrid и пунктир if gdFocused (DrawFocusRect)?   Найти похожие ветки 

 
Cosinus ©   (2004-10-08 15:30) [0]

Помогите найти и прибить кусок кода из Grids.pas, отвечающий за прорисовку курсивной линии, если gdFocused in State вокруг активной ячейки. Вот не могу найти и все:(((


 
Леприкон ©   (2004-10-08 16:19) [1]

может где то в районе 1893 строки? (D7)


 
Skeptik   (2004-10-08 16:30) [2]

посмотри: в 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;


 
Cosinus ©   (2004-10-08 16:57) [3]

DrawFocusRect я все от безысходности прибил... Либо не то, либо я что то не так делаю.
ЗЫ А то, что это t
> в TCustomGrid процедуру Paint, в ней внутреннюю процедуру
> DrawCells

это в общем то как раз понятно :))))


 
Игорь Шевченко ©   (2004-10-08 17:16) [4]


> Помогите найти и прибить кусок кода из Grids.pas, отвечающий
> за прорисовку курсивной линии, если gdFocused in State вокруг
> активной ячейки


Попробуй еще раз сказать DrawFocusRect


 
Cosinus ©   (2004-10-08 17:27) [5]


> Игорь Шевченко ©   (08.10.04 17:16) [4]

Вслух? Говорил. И даже монитор протирал - не помогает :)
А если серьезно, что вы имели ввиду?


 
ЮЮ ©   (2004-10-11 04:01) [6]

DefaultDrawing = false и кроме сетки грида ничто тебя не побеспокоит :)

И теперь в OnDrawCell рисуешь что хочешь и как хочешь


 
Леприкон ©   (2004-10-11 07:24) [7]

У меня получилось. Открыл файл Grids.pas, закомментировал все DrawFocusRect в нём, сохранил его в другом месте, затем "Add file to project" добавил его к проекту, после этого при компиляции уже брался он, а не Grids.dcu из Lib.



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

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

Наверх




Память: 0.48 MB
Время: 0.035 c
1-1097582862
Dez
2004-10-12 16:07
2004.10.24
Работа с масивами(матрицами)


14-1096540499
Sergey_F
2004-09-30 14:34
2004.10.24
Как заблокировать клавиатуру в WinXP?


4-1095875840
hgd
2004-09-22 21:57
2004.10.24
Как работать с WDM драйвером в delphi?


3-1096212833
001
2004-09-26 19:33
2004.10.24
TADOTable.Active: "Invalid variant type conversions."


1-1097232233
Andrey_
2004-10-08 14:43
2004.10.24
Исключение от MaskEdit