Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Delphi6 & DrawGrid

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Yukon



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Есть сабж размером 3х3.
010
111
010
Хочу зарисовать ячейки с 1-clRed.
 
Для этого в событии onDrawCell у САБЖа пишу:
if ((ACol=0) and (ARow=1)) or ((ACol=1) and (ARow=1)) or ((ACol=2) and (ARow=1)) or
   ((ACol=1) and (ARow=0)) or ((ACol=1) and (ARow=2))
then DrawGrid1.Color:=clRed
else DrawGrid1.Color:=$00FBFBFB;
 
Результат:
001
011
101
 
Вопрос: 1) почему сместилась ячейка с позиции[2,1] в позицию[0,2];
             2) как устранить сильное мерцание?
                (может как отрисовал onDrawCell:=nil ?)

Всего записей: 26 | Зарегистр. 28-04-2003 | Отправлено: 00:22 14-05-2003
Felix



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
 if ((ACol=0) and (ARow=1)) or ((ACol=1) and (ARow=1)) or ((ACol=2) and (ARow=1)) or
   ((ACol=1) and (ARow=0)) or ((ACol=1) and (ARow=2))
  then TDrawGrid(Sender).Canvas.Brush.Color:=clRed
  else TDrawGrid(Sender).Canvas.Brush.Color:=$00FBFBFB;
  TDrawGrid(Sender).Canvas.FillRect(Rect);
 

Цитата:
DrawGrid1.Color:=clRed
относится не к цвету канвы, а к цвету компонента. обращение к этому свойству и даёт бесконечную перерисовку (мерцание)

Всего записей: 965 | Зарегистр. 20-01-2002 | Отправлено: 01:06 14-05-2003
Crazy_partizan



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Felix

Цитата:
 if ((ACol=0) and (ARow=1)) or ((ACol=1) and (ARow=1)) or ((ACol=2) and (ARow=1)) or  
   ((ACol=1) and (ARow=0)) or ((ACol=1) and (ARow=2))  
  then TDrawGrid(Sender).Canvas.Brush.Color:=clRed  
  else TDrawGrid(Sender).Canvas.Brush.Color:=$00FBFBFB;  
  TDrawGrid(Sender).Canvas.FillRect(Rect);  

А подобный метод у StrinGrid имеется ? (Для зарисовки интересующих ячеек в гриде?)

Всего записей: 18 | Зарегистр. 11-04-2003 | Отправлено: 15:14 16-05-2003
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Delphi6 & DrawGrid


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru