HighTower
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору это значит когда элементов много в дереве допустим имеется вертикальный скрол допустим можно скролить вниз я взял элемент, начал его перетаскивать, хочу "скинуть" на какой то элемент который внизу, его сейчас не видно пытался сделать так: Код: procedure TfrmMain.mainTreeDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); var NbPixels : Integer; RMin, RMax : Integer; HOffset, VOffset : Integer begin GetScrollRange( mainTree.Handle, SB_HORZ, RMin, RMax ); If RMin = RMax Then HOffset := 0 Else HOffset := 16; GetScrollRange( mainTree.Handle, SB_VERT, RMin, RMax ); If RMin = RMax Then VOffset := 0 Else VOffset := 16; NbPixels := Abs( ( Font.Height ) Div 2 ); If ( Y < NbPixels ) Then mainTree.Perform( WM_VSCROLL, SB_LINEUP, 0 ); If ( Y > Height - VOffset - NbPixels ) Then mainTree.Perform( WM_VSCROLL, SB_LINEDOWN, 0 ); If ( X < NbPixels ) Then mainTree.Perform( WM_HSCROLL, SB_PAGELEFT, 0 ); If ( X > Width - HOffset - NbPixels ) Then mainTree.Perform( WM_HSCROLL, SB_PAGERIGHT, 0 ); end; | и нифига... в нужные моменты в нужные места кода попадаю, сообщение отправляется, но реально скрола нет... такое чувство что момент драга дерево чихает на все ((
---------- Бог у всех один, провайдеры - разные. |
|