| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Раскрытие узла дерева |
| Автор: ura5 26.6.2007, 16:14 |
| Есть меню -дерево : + Цех1 - Участок1 - Бухгалтерия + Цех2 - Ремонты - Мастерские Проблема: Кликаю я по Цех1,он расрывается,выбираю Участок1- все правильно. Кликаю по крестику,где находится Цех2 и (неверно) высвечивается данные из предыдущего Участок1. Я чищу и закрываю перед этим sql-запросы.Делаю,как положено. А,если кликаю по Цех2-все нормально. У МЕНЯ НЕВЕРНО ИДЕТ ВЫБОРКА ПРИ НАЖАТИИ ТОЛЬКО НА КРЕСТИК,который стоит перед названием NEW ITEM. пОЧЕМУ? |
| Автор: _hunter 26.6.2007, 17:09 |
| дык. ставь брейк-поинт в обработчике клика и смотри почему ты передаеш неправильный индекс... Добавлено через 49 секунд P.S. выборка идет неверно потому как делаеш ее по неверным данным... |
| Автор: ura5 27.6.2007, 08:37 |
| Благодарю за ответ,но ,к сожалению,ничего не понял.Вы бы конкретнее объяснили. |
| Автор: _hunter 27.6.2007, 10:40 |
| объясняю конкретно: где-то в твоей программе что-то происходит неправильно. это дает неверный результат. так понятно? или еще как-то намекнуть что твой вопрос без кода не имеет особого смысла?.. |
| Автор: Goganchic 27.6.2007, 10:59 |
| ura5, тема бессмыслена без кода, т.к. _hunter тебе скажет что не так, по его мнению, а на практике окажется что ты где-то слажал, причем совершенно в другом месте |
| Автор: dumb 27.6.2007, 13:23 |
| я так понимаю, проблема в том, что при нажатии на [+] происходит OnClick(в обработчике которого считывается инфа согласно выделенному элементу), но выделение остается прежним. ura5, попробуй использовать OnChange вместо OnClick. |
| Автор: ura5 27.6.2007, 13:29 | ||
| Проблема решается и вопрос мой отпадает,если віборку из меню-дерева поместить в собітие OnChange(),а у меня обработка была в OnClick().Теперь по крестику ,если щелкнуть,то все раскрывается ,как надо. Но теперь второй по этому поводу вопрос: При переходе на обработку в OnChange(),информация при выборе из тех пунктов,которые срабатывают в этой форме-все прекрасно и правильно.А вот переход на другую форму (другой пункт меню) и новое окно не происходит. Вызываю другую форму
Добавлено через 3 минуты и 36 секунд Вернее, переход на 2-.форму в новом окне осуществляется,но сама форма остается на заднем плане,ее не видно.Только,если уменьшить 1-форму,тогда можно увидеть 2-ю. ??? |
| Автор: ura5 27.6.2007, 15:04 | ||
Все поместить в событие OnChange() и переход на новую форму (в новом окне) записать ввиде
Все работает. |
| Автор: dumb 27.6.2007, 15:18 | ||
| вообще, при использовании TreeView в качестве управляющего элемента интерфейса, я бы не советовал открывать какие-то формы при кликах на tree item'ах - это очень нестандартно и, мало того, очень неудобно в использовании. все изменения должны быть в пределах одной формы - переключение закладок, скрытие/показ элементов, итд. и не забывай про то, что некоторые люди(сумасшедшие набросал небольшую "заготовку":
эк ты резво курс меняешь - все-таки между ShowModal() и Show() довольно ощутимая разница... |
| Автор: ura5 2.7.2007, 14:24 |
| dumb! Спасибо!Работает быстрее,чем ,если делать обработку пунктов меню в событии OnChange(); |