Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];

Вниз

Помогите с проблемой!!! Полоса прокрутки в TreeView   Найти похожие ветки 

 
Fedorenko Igor   (2002-02-07 12:23) [0]

Помогите! Как заставить TreeView автоматически прокручивать окно когда "тащим" мышкой итем за пределы окна????


 
Petrovich (origin)   (2002-02-07 13:10) [1]

Вообще-то вопрос плохо понятен. Я так понимаю, что при перетаскивании итема вверх или вниз, в момент выхода за пределы окна дерева, дерево должно скроллироваться.
Если так, то такой пример тебе поможет.

У таймера интервал = 100.

procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Timer1.Tag := 0;
if (htOnItem in TreeView1.GetHitTestInfoAt(X,Y)) then
begin
{ Проверяем, находится ли курсор над первым или последним нодом }
if TreeView1.GetNodeAt(X,Y) = TreeView1.TopItem then
{ Устанавливаем признак, что надо скролиться вверх }
Timer1.Tag := 1
else
if TreeView1.GetNodeAt(X,Y).DisplayRect(False).Bottom >=
TreeView1.Top + TreeView1.Height-5 then
{ Устанавливаем признак, что надо скролиться вниз }
Timer1.Tag := -1;
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var Node: TTreeNode;
begin
inherited;
Node := nil;
case Timer1.Tag of
1:begin
{ Если движемся вверх, то берем предыдущий видимый нод... }
Node := TreeView1.TopItem.GetPrevVisible;
end;
-1:begin
{ Если движемся вниз, то берем следующий видимый нод... }
Node := TreeView1.TopItem.GetNextVisible;
end;
end;
if Assigned(Node) then
begin
{ ...и делаем его верхним }
TreeView1.TopItem := Node;
TreeView1.Repaint;
end
end;


 
Fedorenko Igor   (2002-02-07 13:39) [2]

Спасибо, но скроллинг вниз не работает


 
Petrovich (origin)   (2002-02-07 13:41) [3]

Поэкспериментируй с цифрой 5 в строчке
TreeView1.Top + TreeView1.Height-5


 
Fedorenko Igor   (2002-02-07 13:44) [4]

Спасибо, на -100 заработало :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
7-79488
Прикольщик
2001-11-15 22:53
2002.02.25
помогите чем можете


14-79439
Alex!!!
2002-01-04 13:15
2002.02.25
Подскажите, какой язык программирования учить для заработка денег?


14-79475
Alexey(Me)
2002-01-05 11:11
2002.02.25
Comp. фирма


1-79399
Aleksey_K
2002-02-08 12:14
2002.02.25
Пароль


14-79470
sasha2
2002-01-11 10:55
2002.02.25
Как в TMemoryTable задать Filter?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский