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

Вниз

отрисовка на канве грида   Найти похожие ветки 

 
петрович07   (2007-11-11 15:44) [0]

мастера подскажите что делаю не так и направьте в нужное русло)))
рисую на канве stringgrid"a линии(границы клеток). Рисуется все норм.,но как только я начинаю двигать ползунок вниз грид начинает перерисовываться и тут происходит моргание мерцание,вообщем долго перерисовывается,мне кажется я не правильно делаю:

 table_2.Canvas.Pen.Color := clBlack;
 table_2.Canvas.Pen.Width := 1;
 rect := table_2.CellRect(ACOl, Arow);
       if ARow >= 0 then
 begin
   table_2.Canvas.MoveTo(Rect.Left,Rect.Bottom);
   table_2.Canvas.LineTo(Rect.Right, Rect.Bottom);
 end;

 if ACol >= 0 then
 begin
   table_2.Canvas.MoveTo(Rect.Right, rect.Top);
   table_2.Canvas.LineTo(Rect.Right, Rect.Bottom);
 end;

 table_2.Canvas.Pen.Color := clred;
//Рамка
 table_2.Canvas.MoveTo(0, 0);
 table_2.Canvas.LineTo(0, table_2.Height);

 table_2.Canvas.MoveTo(0, table_2.Height-1);
 table_2.Canvas.LineTo(table_2.Width, table_2.Height-1);

 table_2.Canvas.MoveTo(table_2.VisibleColCount*table_2.DefaultColWidth+table_2.VisibleColCount-1, 0);
 table_2.Canvas.LineTo(table_2.VisibleColCount*table_2.DefaultColWidth+table_2.VisibleColCount-1, table_2.Height-1);

и т.д.


 
KilkennyCat ©   (2007-11-11 16:51) [1]

и где сей код обрабатывается?


 
bagos   (2007-11-11 17:48) [2]

в ondrawcell грида


 
петрович07   (2007-11-11 17:49) [3]

>и где сей код обрабатывается?  ondraw


 
KilkennyCat ©   (2007-11-11 22:33) [4]

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


 
Amoeba ©   (2007-11-11 22:41) [5]


> table_2.Canvas.MoveTo(table_2.VisibleColCount*table_2.DefaultColWidth+table_2.
> VisibleColCount-1, 0);
>  table_2.Canvas.LineTo(table_2.VisibleColCount*table_2.DefaultColWidth+table_2.
> VisibleColCount-1, table_2.Height-1);

Вот здесь собака и зарыта. Далее читаем
> KilkennyCat ©   (11.11.07 22:33) [4]

OnDrawCell действительно относится только к одной текущей ячейке, и вылезать за ее границы нельзя.


 
петрович07   (2007-11-12 00:12) [6]

спасибо вам большое,как сам не догадался..знал же))))

сделал в TopLeftChanged,все оч даже хорошо


 
ЮЮ ©   (2007-11-12 04:33) [7]

> сделал в TopLeftChanged,все оч даже хорошо

Ничего хорошего в рисовании в TopLeftChanged нет. Проведи над гридом форму чужого приложения. И как теперь?


 
петрович07   (2007-11-12 13:52) [8]

мда..и где рисовать тогда?


 
петрович07   (2007-11-12 23:23) [9]

скажите плиз, а то не реал так работать когда такая перерисовка дурацкая..:(


 
Virgo_Style ©   (2007-11-12 23:48) [10]

> петрович07   (12.11.07 13:52) [8]


Таки в OnDrawCell


 
петрович07   (2007-11-13 00:27) [11]

но ondrawcell для одной ячейки


 
Amoeba ©   (2007-11-13 00:38) [12]


> петрович07   (13.11.07 00:27) [11]
>
> но ondrawcell для одной ячейки

Прямо как об стену горох...

Так и код отрисовки должен быть именно для одной ячейки. И нечего при отрисовке залезать с MoveTo и LineTo за ее пределы. И рисовать именно в OnDrawCell.


 
KilkennyCat ©   (2007-11-13 00:56) [13]

Добавлю, на всяк пожарный :)
В стрингриде отрисовываются все ячейки! Т.е. ондроуцелл сработает для всех ячеек, а не только для избранных.


 
Германн ©   (2007-11-13 01:52) [14]


> KilkennyCat ©   (11.11.07 22:33) [4]
>
>

Было уже такое. И тот же совет я давал тому автору. Похоже сей топик нужно адресовать LVT. Пусть и его учтёт в своём нынешнем (и очень полезном начинании).



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

Форум: "Начинающим";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.043 c
2-1194334476
Dmitriy O...
2007-11-06 10:34
2007.12.09
Как загрузить список всех текстовых файлов в комбобокс из какой


2-1195214661
allucard
2007-11-16 15:04
2007.12.09
Delphi + firebird


2-1194347844
Lebedev
2007-11-06 14:17
2007.12.09
Нижние индексы и греческий шрифт.


11-1180370896
Rusya
2007-05-28 20:48
2007.12.09
Help: Обработчик OnDrawCell


11-1180584972
Ned
2007-05-31 08:16
2007.12.09
Как узнать версию Windows?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский