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

Вниз

Ячейки DrawGrid   Найти похожие ветки 

 
Checist [root]   (2003-07-17 11:56) [0]

1) Как мне проверить свободна ли ячейка (2,1) в DrawGrid1 при нажатии Button1 (в смысле - в ячейке нет картинки)
2) Как мне очистить заполненную ячейку (2,1) в DrawGrid1 при нажатии Button2


 
Skier   (2003-07-17 11:59) [1]

Checist [root] (17.07.03 11:56)
1) Никак
2) Перерисовать, учитывая какие-то (тебе решать...) флаги


 
Checist [root]   (2003-07-17 12:01) [2]

В смысле, как перерисовать ?


 
Skier   (2003-07-17 12:02) [3]

>Checist [root] (17.07.03 12:01)
см. OnDrawCell


 
ЮЮ   (2003-07-17 12:03) [4]

в DrawGrid ничего нет. Он должен работать с некой структурой в памяти, определяющей данные для отрисовки каждой ячейки, и рисовать в обработчике onDrawCell. Вот эту информацию и можно использовать "при нажатии Button". Её же и следует изменять, заставляя перерысовываться "измененную ячейку": InvalidateCell


 
Checist [root]   (2003-07-17 12:05) [5]

Ну хорошо. Допустим, это понятно. Ты имеешь в виду закрасить ячейку цветом фона, но это пожирает дохрена ресурсов если - я в цикле обрабатываю 20 ячеек. Можно просто уничтожить холст ячейки с картинкой и на его место создать новый, пустой?


 
Skier   (2003-07-17 12:07) [6]

>Checist [root] (17.07.03 12:05)
У ячейки нет холста


> Ты имеешь в виду закрасить ячейку цветом фона, но это пожирает
> дохрена ресурсов

Не пожирает.


 
Checist [root]   (2003-07-17 12:09) [7]

Ладно верю, как это сделать?
Хотя у меня P3, а при закраске 20 ячеек картинками я ощущал легкое торможение - напрягает !!!


 
ЮЮ   (2003-07-17 12:18) [8]

>я в цикле обрабатываю 20 ячеек
Это как:
http://delphimaster.net/view/1-1058359954/

:-) Сколько можно повторять:
1) "Никаких циклов". В обработчике OnDrawCell отрисовывается только одна ячейка.
2) При необходимости перерисовать ячейку вызывается InvalidateCell


 
Checist [root]   (2003-07-17 12:18) [9]

Подскажите код, плиз!


 
Skier   (2003-07-17 12:20) [10]

>Checist [root] (17.07.03 12:18)
http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988625107&n=21


 
Checist [root]   (2003-07-17 12:23) [11]

Кстати эта шняга вполне работает.
Но нужна еще одна процедура - очищающая ячейки, по тому же самому алгоритму. Мне именно нужен соурс очищающий определенную ячейку и все!


 
Checist [root]   (2003-07-17 12:26) [12]

Тот соурс тоже вполне понятен, но он загружает в ячейку битмап, а мне нужно наоборот - очищать.
Метод, типа вставить туда солид битмап цвета фона слишком грузен.


 
ЮЮ   (2003-07-17 12:27) [13]

Да не может это работать! Помести во время работы твоей программы другую форму, а затем убери - и обрадуйся увиденному :-)


 
ЮЮ   (2003-07-17 12:30) [14]

if <надо нарисовать картинку> then
Draw(Rect.Left, Rect.Top, Image1.Picture.Graphic)
else
FillRect(Rect)


 
Checist [root]   (2003-07-17 12:30) [15]

Да это я знал. Но мне это не важно. У меня форма StayOnTop и SystemDialog


 
Skier   (2003-07-17 12:33) [16]

>Checist [root] (17.07.03 12:30)

> Да это я знал. Но мне это не важно.


:))

"Мораль легко уразуметь - "
" Зачем на бал пришёл медведь ?"


 
Checist [root]   (2003-07-17 12:36) [17]

FillRect(Rect) - грубо говоря, очищает ячейку?
А которую или все?


 
Skier   (2003-07-17 12:37) [18]

>Checist [root] (17.07.03 12:36)
Очищает ту, которая перерисовывается в данный момент.


 
ЮЮ   (2003-07-17 12:38) [19]

Ту, которую ты в данный момент отрисовываешь в DrawGrid.onDrawCell

TDrawCellEvent = procedure (Sender: TObject; ACol, ARow: Longint; Rect: TRect; State: TGridDrawState)


 
Checist [root]   (2003-07-17 12:40) [20]

> Skier - это я ЮЮ по поводу отсутствия перересовки.
Смешно получилось :)



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

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

Наверх




Память: 0.48 MB
Время: 0.008 c
4-101033
Axis_of_Evil
2003-05-29 09:23
2003.07.31
Ошибка с Hook ом ...


1-100680
ruslan_as
2003-07-18 09:55
2003.07.31
После обработки обшибки try -.except у меня не работает Combobox


11-100660
Fantasist
2002-11-27 07:07
2003.07.31
ActiveX with KOL


3-100597
urich
2003-07-09 10:30
2003.07.31
Перенос таблицы из одной БД в другую


14-100953
passm
2003-07-15 13:57
2003.07.31
Антибликовые очки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский