Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Вниз

Ячейки 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
4-101014
mpe
2003-05-25 16:18
2003.07.31
Как в Win98SE изменить время создания каталога?


6-100848
servs
2003-05-22 19:45
2003.07.31
TEmbeddedWB и нажатия клавиш


8-100844
illusdolphin
2003-04-07 23:13
2003.07.31
Алгоритм - аналог stretchdraw


4-101029
dimonf
2003-05-28 19:45
2003.07.31
Народ, как определить что у меня курсор не на PopupMenu???


1-100700
GSergei
2003-07-18 14:06
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский