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

Вниз

Показ (0,0) угла TreeView   Найти похожие ветки 

 
Lakshmy ©   (2007-05-15 14:33) [0]

Здравствуйте!
Подскажите пожалуйста, я никак не соображу... На форме есть компонент TreeView, я его заполняю программно, в результате его заполнения окно с TreeView прокручивается вниз, а как сделать чтобы был показан самый верх окна TreeView? Я не нашла ни одного метода для этого... Может плохо искала?


 
Elen ©   (2007-05-15 15:01) [1]

Переход на верхний итем : TreeView1.TopItem:=TreeView1.Items.GetFirstNode


 
Lakshmy ©   (2007-05-15 18:01) [2]

А! А то в книжке как-то непонятно написано... Спасибо!


 
Lakshmy ©   (2007-05-15 18:35) [3]

А еще вопрос - какое событие использовать, чтобы узнать какой итем выделен?


 
{RASkov} ©   (2007-05-15 18:38) [4]

> [3] Lakshmy ©   (15.05.07 18:35)

Любое.... ты конкретнее спрашивай.....


 
Lakshmy ©   (2007-05-15 18:46) [5]

Ну вот у меня есть TreeView типа как обозреватель кода в Дельфи, и есть Memo, там текст, щелкаешь по какому-то итему в TreeView, и курсор в тексте перемещается к этому слову.


 
trubin ©   (2007-05-15 19:01) [6]

TTreeView.OnChange


 
Lakshmy ©   (2007-05-15 19:05) [7]

Отлично! Спасибо!


 
Lakshmy ©   (2007-05-15 19:21) [8]

Так как я впервые в жизни столкнулась с TreeView, я вообще нифига не понимаю... Вот пишу для теста:
procedure TMainForm.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if Node.Parent=nil then  ShowMessage("privet!");
end;

Он правильно реагирует, но когда я нажимаю на кнопку закрытия главного окна, это событие срабатывает еще несколько раз! Причем если выбираешь последний, повторений не происходит, предпоследний - 1 раз, предпредпоследний - 2 раза и т.д.... Откуда это и почему?


 
Lakshmy ©   (2007-05-15 19:25) [9]

Это почему-то возникает из-за TreeView1.Items.Clear при выходе...


 
{RASkov} ©   (2007-05-15 19:30) [10]

> [9] Lakshmy ©   (15.05.07 19:25)

А тебе извесно, что такое Parent? И что происходит при закрытии формы, в часности с TreeView....


 
Lakshmy ©   (2007-05-15 19:31) [11]

Ну родитель, то есть если он nil, то значит это элемент в корне. А вот что происходит при закрытии формы, я не знаю. Расскажи пожалуйста


 
Lakshmy ©   (2007-05-15 19:43) [12]

Это происходит только если я ставлю TreeView1.Items.Clear при закрытии.


 
{RASkov} ©   (2007-05-15 19:57) [13]

> А вот что происходит при закрытии формы, я не знаю. Расскажи пожалуйста

Ты лучше расскажи, что тебе нужно... может тебе нужно Node.Level ?


 
Lakshmy ©   (2007-05-15 20:10) [14]

Да вобщем нужно тоже самое, что и окошко "Обзор кода" в Дельфи. В Memo у меня программный код, в TreeView я загоняю названия классов и их свойства и методы. Если щелкнуть например на какой-нибудь метод какого-нибудь класса в TreeView, то в Memo курсор должен перескакивать на описание этого метода. Все как в Дельфи. А когда я закрываю документ, с которым работаю, но не закрываю главное окно, у меня Memo очищается и TreeView тоже должно очищаться, но из-за TreeView1.Items.Clear несколько раз срабатывает TreeView1Change. И я не пойму почему. Смотрела описание метода Clear, ничего подозрительного там не увидела...


 
{RASkov} ©   (2007-05-15 20:24) [15]

> [14] Lakshmy ©   (15.05.07 20:10)

перед очисткой отключи обработчик:
TreeView.OnChange:=nil;
TreeView.Items.Clear;
TreeView.OnChange:=TreeViewChange;
А вообще... что то ты не так делаешь.... покажи свой TreeView1Change....


 
Lakshmy ©   (2007-05-15 20:51) [16]

Эээ... А каким образом показать? Сделала как ты сказал, заработало. Но это же криво, так ведь не должно быть...


 
{RASkov} ©   (2007-05-15 22:04) [17]

> [16] Lakshmy ©   (15.05.07 20:51)
> Эээ... А каким образом показать?

Ну то что в [8] это ж не "настоящий".... правда? Вот и хотел посмотреть на "настоящий" OnChange.

> Но это же криво, так ведь не должно быть...

Ну почему..... иногда это облегчает при написании кода, все зависит, от того, правильно ли ты делаешь.....


 
Lakshmy ©   (2007-05-15 22:11) [18]


> Ну то что в [8] это ж не "настоящий".... правда?

Как это не настоящий? А какой настоящий? Я не понимаю...

> Ну почему..... иногда это облегчает при написании кода,
> все зависит, от того, правильно ли ты делаешь.....

Ну а почему неправильно-то? Все вроде верно, неужели ни у кого такого не бывало?


 
{RASkov} ©   (2007-05-15 22:15) [19]

> [18] Lakshmy ©   (15.05.07 22:11)
> Как это не настоящий?

Не смеши..... неужели в твоей программе код OnChange TreeView это и есть весь в [8] :)

> Ну а почему неправильно-то?

А кто сказал, что не правильно? Я вот и не знаю, что у тебя там, да как......


 
{RASkov} ©   (2007-05-15 22:16) [20]

> Не смеши..... неужели в твоей программе код OnChange TreeView
> это и есть весь в [8] :)

И если это так, то смело делай как в [15].....


 
{RASkov} ©   (2007-05-15 22:18) [21]

> [18] Lakshmy ©   (15.05.07 22:11)
> Все вроде верно, неужели ни у кого такого не бывало?

Ну событие генериться OnChange при Clear.... что не понятного-то?


 
Lakshmy ©   (2007-05-15 22:30) [22]

Не, ну пока только этот код, я же для теста это сделала, просто никогда не работала с TreeView, вот и решила опробовать, а дальше там много чего будет.

> Ну событие генериться OnChange при Clear.... что не понятного-
> то?

Ну понятно, а почему? Как это нормально обойти-то? Как в [15] будет достаточно? Или все же это не совсем корректно?


 
{RASkov} ©   (2007-05-15 22:47) [23]

> Как в [15] будет достаточно?

Я думаю - да, но смотря, что будет в OnChange... просто учитывай, этот код(OnChange) не выполнится при отключенном обработчике и все.


 
Lakshmy ©   (2007-05-15 23:43) [24]

Честно говоря впервые вижу, чтобы вот так проблема решалась. Но все равно спасибо.



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

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

Наверх




Память: 0.5 MB
Время: 0.056 c
2-1178820436
Riply
2007-05-10 22:07
2007.06.03
Ожидание окончания "инициализации процесса".


3-1173848735
Xmen
2007-03-14 08:05
2007.06.03
Связь с базой


2-1179124034
Люха
2007-05-14 10:27
2007.06.03
Выключение компа


1-1175861729
Wahnsinng
2007-04-06 16:15
2007.06.03
Как отключить сообщение об ошибках


6-1164205530
B@rm@ley
2006-11-22 17:25
2007.06.03
Socket





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский