Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
ВнизКак сделать, чтобы TreeView прокручивался при таскании узлов? Найти похожие ветки
← →
Ivan Pashkov (2004-10-29 16:34) [0]Есть TreeView, в котором узлы таскаются с места на место (DragMode=dmAutomatic). Проблема: когда тащится какой-то узел, невозможно его перетащить в область того же TreeView, которая в данный момент не помещается в видимой области. По идее TreeView должен прокручиваться в такой ситуации, а он, скотина, не прокручивается. Как сделать, чтобы прокручивался? Заранее большое спасибо!
← →
MBo © (2004-10-29 16:39) [1]в OnDragOver нужно следить за координатами и вовремя прокручивать
← →
inic © (2004-10-29 16:45) [2]Ivan Pashkov (29.10.04 16:34)
Или вот такой грубоватый вариант
procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var t: TTreeNode;
begin
if Y >= 0 then begin
t := TreeView1.GetNodeAt(X, Y);
if t <> nil then
t.MakeVisible;
end
else begin
t := TreeView1.GetNodeAt(X, 0);
if t <> nil then
if t.GetPrevVisible <> nil then
t.GetPrevVisible.MakeVisible;
end;
end;
← →
Ivan Pashkov (2004-10-29 18:12) [3]Это работает, но очень грязно - мусор на экране остается. Если делать Invalidate или BeginUpdate/EndUpdate, то тогда мерцание сплошное...
← →
Анонимщик © (2004-10-29 18:40) [4]А я запустил свою старую программу - так в ней все прокручивается. Видимо, нужно смотреть на параметры внимательно.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c