Главная страница
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.067 c
1-1097351371
Алексей
2004-10-09 23:49
2004.10.24
Узнать какой объект создал событие


1-1097563467
aleshap
2004-10-12 10:44
2004.10.24
Возможно ли в Delphi косвенно выполнить команду


14-1097125698
КаПиБаРа
2004-10-07 09:08
2004.10.24
Опрос - Время.


14-1096291250
pasha_golub
2004-09-27 17:20
2004.10.24
Софт для мобилы


14-1095511217
Fallen Angel
2004-09-18 16:40
2004.10.24
Проблемы с XP