![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Правильная отрисовка канвы при скролинге [D6, Win95/98, WinME, Win2k, WinXP]
off © (2004-09-08 13:27:00)Здравствуйте, мастера. На форме лежит панель, на панели лежит пэйнтбокс (такая вот порнография и беспредел). При этом размер панели больше размера формы отчего на ней появляются полосы прокрутки. С левого края в пэйнтбокс выводятся цифирки в столбец (canvas.textout в ПэйнтбоксПэйнт) при этом они должны там оставаться независимо от кого как и куда мы прокручиваем. Причем когда пользуешься стрелками на горизонтальной полосе прокрутки - отрисовка происходит правилно. А вот когда таскаешь за ползунок - остается след. Выходит пэйнтбокс не обновляется. Как это побороть (т.е. как обработать прокрутку ведь у этого компонента нет события ОнАфтаСкрол)?
KSergey (2004-09-10 10:13:00) [1]Refresh(Sender);
А вот это издевательство.
Отрисовали, и тут же опять просим перерисоваться...
TUser (2004-09-10 09:56:00) [2]Обработай wm_vscroll и вызови там перерисовку. А стирать вс-таки придется.
OFF (2004-09-10 06:28:00) [3]Код я уже выложил, а вот насчет того что "стирать надо перед рисованием" это по моему никчему т.к. дело не в том что не стирается, а в том, что не обновляется. Т.е. когда мы используем полосу прокрутки, то событие не обрабатывается.
off (2004-09-09 12:08:00) [4]procedure TFStart.PB1Paint(Sender: TObject);
var I: Integer;
begin
for I := 0 to 31 do
begin
PB1.Canvas.TextOut(- PB1.ClientOrigin.X + 6,(I+1)*40-26,IntToStr(I));
end;
Refresh(Sender);
end;
KSergey (2004-09-09 09:40:00) [5]а) код
б) стирать надо перед рисованием
off (2004-09-09 06:12:00) [6]Что вы тоже не знаете как?! Жаль :(