Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Onselect в Ttreeview
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - FAQ
Jeefo
мне нужно, чтобы при выделении какого либо Node в TTreeView выполнялся определенный код. но обработчика OnSelect в TTreeView нет. что подскажете?
Morpheus
дописать свой
etc
Цитата(Jeefo @ 23:05:2008 - 16:31) *
что подскажете?
Брать лопату и мести улицы.
Цитата(Morpheus @ 23:05:2008 - 16:54) *
дописать свой
там все уже есть.
Jeefo
Цитата(etc @ 23:05:2008 - 16:03) *
там все уже есть.

к сожалению в упор не вижу OnSelect в списке events

Цитата(Morpheus @ 23:05:2008 - 15:54) *
дописать свой

можно подробней? гугл ничего путного не нашел(
etc
Цитата(Jeefo @ 23:05:2008 - 19:24) *
к сожалению в упор не вижу OnSelect в списке events
Его и нет, есть другие которые делают это самое. Так что в армию, потом мести улицы.
Jeefo
Цитата(etc @ 23:05:2008 - 18:32) *
Его и нет, есть другие которые делают это самое.

какие?

Цитата(etc @ 23:05:2008 - 18:32) *
Так что в армию, потом мести улицы.

такая перспектива не устраивает, поэтому пытаюсь изучить дельфи. да, пока самостоятельно. да, пока новичек, и мало что в этом понимаю. но желание есть, и не вижу ничего плохого в том, что пытаюсь спросить у людей знающих
etc
Цитата(Jeefo @ 23:05:2008 - 19:37) *
поэтому пытаюсь изучить дельфи
Так пытаетесь, что аж на F1 нажать не в состоянии и в справке прочитать и пример посмотреть?
Jeefo
я нашел в справке OnItemClick - событие TCustomTreeView, то что мне нужно. но как воспользоваться этим событием в TTreeView? примеров по этому поводу в справке не нашел, ни в описании самого события, ни в описании TCustomTreeView.
etc
и что там пишут?
Jeefo
пишут что это базовый класс. а еще что большинство свойств в нем protected, и я могу использовать их в своих TTreeView. а вот как не знаю... примера там нет
etc
По поводу эвентов что пишут?
Jeefo
в описании TCustomTreeView ничего. в описании конкретно OnItemClick пишут, что он возникает, когда по node кликнули мышкой. и что онклик можно также инициировать с клавы или эвентов меню, которые эквивалентны кликам мыши. чет не разберусь куда здесь копать, единственное что приходит в голову: Ttreeview - потомок Tcustomtreeview и его эвенты можно как то использовать в TTreeView. но как - хз, и вообще я правильно мыслю?
etc
Плохо читали еще читайте, и про все эвенты.
Jeefo
уфф sad.gif не знаю, плохо - не плохо ищу, но я уже на протяжении трех дней пытаюсь с этим разобраться. ищу и в справке дельфи, и в инете - однако найти ответа не могу. может вы все же намекнете поконкретней?
etc
Ну что тут намекать? все просто, открываете список всех эвентов TTreeView и читаете/вникаете когда каждый возбуждается, - соответствующий применяете.
Это даже те что лопатами метут в состоянии сделать.

Не можете сами - вкатывайте сюда описание по каждому, потом вместе разберем что на что годно.
Jeefo
в итоге воспользовался методом OnChange, а чтобы он не реагировал на программное изменение дерева (то есть отвечал только на выделение пользователем), присваиваю nil полю OnChange на время выполнения такой функции.
только так и не понял, зачем тогда нужен эвент OnItemClick и как им воспользоваться? и как мне воспользоваться эвентом OnItemDblClick если понадобится реагирование на двойной клик? ведь ни того ни другого в инспекторе объектов нет...
в любом случае спасибо etc за терпение
etc
Цитата(Jeefo @ 26:05:2008 - 21:03) *
а чтобы он не реагировал на программное изменение дерева (то есть отвечал только на выделение пользователем), присваиваю nil полю OnChange на время выполнения такой функции.
Ну вот, а вы говорили что ничего нет, и "глушить" пользовательский обработчик (:=nil) это нормально.
Цитата(Jeefo @ 26:05:2008 - 21:03) *
только так и не понял, зачем тогда нужен эвент OnItemClick и как им воспользоваться
"Каждому овощу свое время и место".
zubr
Jeefo, в TTreeView есть событие OnGetSelectedIndex. Возникает при любом изменении выбора (к примеру, перемещением по дереву с помощью клавиатуры) в TTreeView (недостаток, что возникает и при перерисовке компонента).
Jeefo
Цитата(etc @ 27:05:2008 - 09:01) *
Ну вот, а вы говорили что ничего нет

на OnChange обращал внимание еще до того как сюда обратился, но останавливало именно то, что он возникает и при программном изменении выделения (про nil догадался только вчера).

zubr
спасибо. вроде мне все равно какой из этих двух использовать, и тот и другой "глушить" придется
etc
Цитата(Jeefo @ 27:05:2008 - 09:41) *
про nil догадался только вчера
Надо же понимать что тут простые люди, и телепатией обладают даааааааааааалеко не все. Откуда нам знать кто чего [не]догадывается?
Учитесь правильно задавать вопросы, тогда ответы не заставят себя ждать.
Jeefo
etc
хм, но если я не подозревал, что так можно делать, как же я мог спросить? а когда догадался, то самому проверить проблемы не возникло
etc
Цитата(Jeefo @ 27:05:2008 - 11:26) *
хм, но если я не подозревал, что так можно делать, как же я мог спросить?
Спрашивать надо тот вопрос который стоит перед вами! Вы же сюда приплели какойто никому не известный и не нужный OnSelect!, откуда вы его взяли опять надо телепатировать? Ну и читать читать читать, если бы вы прочитали изначально, то правильный вопрос мог бы выглядеть примерно так:
"мне нужно, чтобы при выделении какого либо Node в TTreeView выполнялся определенный код. но " а вот дальше указываете что делали и что неполучилось, а выдумывать сказки не надо, тут и без них хватает ...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2008 IPS, Inc.