Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Правильная отрисовка канвы при скролинге [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]

Что вы тоже не знаете как?! Жаль :(


Наверх

Титульная страница Поиск, карта сайта Написать письмо