Я пишу программку на Delphi c иерархией динамически созданных объектов... дело касается компонента Memo. В него записывает длинный жирный наклонный текст и используются полосы прокрутки... Так вот, при прокрутке у самого конца строки появляются артефакты изображения, т.е. остается предыдущий текст, который ушел влево. К сожалению, у компонента Memo нет обработчиков событий прокрутки, поэтому пришлось создать его подкласс (в терминах Windows): procedure TForm1.set_wndproc(mem: TMemo); var h:HWND; wp:TFNWndProc; begin h:=mem.Handle; wp:=@MyWndProc; wp:=pointer(SetWindowLong(h,GWL_WNDPROC,longint(@MyWndProc); SetWindowLong(h,GWL_USERDATA,longint(wp; end; Процедура окна такая: function MyWndProc(hwnd:HWND;msg:UINT;wp:WPARAM;lp:LPARAM):LRESULT;stdcall; var wpi:TFNWndProc; mem:TMemo; begin if msg=WM_HSCROLL then begin InvalidateRect(hwnd,0,true); end; wpi:=pointer(GetWindowLong(hwnd,GWL_USERDATA; result:=CallWindowProc(wpi,hwnd,msg,wp,lp) end; Пробовал и так и сяк, в общем-то работает, но не совсем так, как хотелось бы... Трудно описывать... Скажу только, что когда отпускаем клавишу мыши от прокрутки, усе ок. Проблемы именно при движении ползунка. То ли медленно стирает - кратковременно появляется некоторое количество букв, то ли еще чего - при остановке движения (ползунок при этом не отпускается!!!) в конце строки остаются какие-то хвостики букв. Когда отпускаем, они исчезают... Вот такие дела ( В принципе я смирился... хотя и неприятно...