![]() |
![]() ![]() ![]() ![]() |
|
Прокручивать TTreeView во время перемещенияDelphi , Синтаксис , Drag and DropПрокручивать TTreeView во время перемещения
Оформил: DeeCo
procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
if (y < 15) then {On the upper edge - should scroll up }
SendMessage(TreeView1.Handle, WM_VSCROLL, SB_LINEUP, 0)
else if (TreeView1.Height - y < 15) then { On the lower edge - should scroll down }
SendMessage(TreeView1.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
end;
Here's the translation of the Delphi code snippet into Russian: Код-сниппет на языке Delphi, который обрабатывает событие Вот что код делает:
Идея за этим кодом - имитировать поведение стандартного Windows-контрола при перетаскивании элемента над его верхней или нижней границей, вызывая прокрутку вверх или вниз соответственно. Это может быть полезно в определенных сценариях, когда содержимое дерева quite large и требует частой прокрутки. Вот некоторые предложения:
Вот пример улучшения логике прокрутки:
В этом улучшенном варианте количество прокрутки рассчитывается на основе расстояния между курсором мыши и верхней или нижней границей дерева. Это должно обеспечить более плавное и точное прокручивание. В статье описывается способ прокручивания TTreeView компонента в Delphi при перемещении над ним, чтобы обеспечить доступность элементов дерева на верхней и нижней границах. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Drag and Drop ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||