![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Norfonzor |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 17.10.2008 Репутация: нет Всего: нет |
вопросы:
1) как назначить на node иконки папок, пример "от квадро" открывает с ошибкой. 2) глюк с выделением: в моей программе существуют 2 вида файлов: папки и файлы, в файлах нельзя создавать под каталоги. Редактирования осуществляется при нажатии на правую кнопку мыши появляется PopupMenu, в котором, при нажатии на файлы пункт "Добавить в текущем" становится в .disable проблема: выделяю папку, далее правой кнопкой жму на файл, он не выделяется, открывается PopupMenu с enabled и добавляется подкаталог в файл: ![]() когда я левой кнопкой выделяю файл то все работает нормально ![]() Как исправить эту проблему? надо как то осуществить выделение. код обработчиков: на VT правой кнопкой:
3) В VT могут добавляться файлы (MS office) при нажатии на них в VT они загружаются в Webbrowser: при удалении каталога, надо удалить все файлы которые в нем содержаться, т.е. надо перечислить все Node далее я удалю их
Спасибо! |
||||
|
|||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
1. Должен быть ImageList, назначенный VT, в VT нужно назначить обработчик OnGetImageIndex, в котором возвращать индекс нужной иконки из ImageList. Кроме примеров от Quadro есть примеры на сайте разработчика.
2. Для начала, выставить TreeOptions>SelectionOptions>toRightClickSelect в True. 3. Не нужно перечислять все ноды. Они сами перечислятся в vt.OnFreeNode. Правда, тут нужно обработать освобождение нодов по завершению работы программы. Например, так:
Это сообщение отредактировал(а) kami - 14.5.2010, 07:56 |
|||
|
||||
| Norfonzor |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 17.10.2008 Репутация: нет Всего: нет |
1)
в ImageList1 иконки с номера 0 и 1. но иконки не отображаются. Текс придумал сам ГГЫЫ!!! выбрал Imagelist1 в ObjectInspector (слева) в пункте Images. иконки появились! 2) стоит в true, я заметил что она выделяется когда пропадает PopMenu. 3) все работает отлично! Не думал что так просто будет.
Добавьте kami репу+++ у меня постов не хватает Это сообщение отредактировал(а) Norfonzor - 14.5.2010, 09:53 |
||||
|
|||||
| kami |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Переделаем обработчики: 1. vt.OnMouseDown убрать. С концами. 2. Назначаем обработчик vt.OnContextPopup (не забыв при этом прописать PopupMenu в инспекторе объектов в vt.PopupMenu В нем пишем:
Это сообщение отредактировал(а) kami - 14.5.2010, 10:50 |
||||
|
|||||
| Norfonzor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 17.10.2008 Репутация: нет Всего: нет |
Все отлично работает!
По поводу "что будет с пунктом меню add, если Assigned(NewPhone)=False", когда "Assigned(NewPhone)" может быть false? а еще вопрос как заблокировать PopupMenu чтобы оно не появлялось. (если не в режиме редактирования то появляться не должно) Сделал так:
не знаю на сколько это красиво и можно ли так делать Это сообщение отредактировал(а) Norfonzor - 14.5.2010, 11:51 |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
ХЗ. Не заморачивался подобным. Но вообще - может, когда нод не инициализирован. Если у тебя такое невозможно - зачем тогда вообще проверка на Assigned? А если возможно - нужно предусмотреть все варианты ветвления алгоритма. работает? Значит можно. Но вообще - если можно отследить явный признак перехода в режим редактирования и обратно, я бы сделал так: // в событии входа/выхода в/из режим редактирования
Вот и все - когда входим в режим редактирования у vt "появляется" PopupMenu, а когда выходим - исчезает... Единственное - нужно определиться с начальным состоянием - если при запуске программы режим редактирования включен, то нужно прописать в инспекторе объектов vt.PopupMenu, иначе - оставить пустым. Это сообщение отредактировал(а) kami - 14.5.2010, 23:36 |
|||
|
||||
| Norfonzor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 17.10.2008 Репутация: нет Всего: нет |
PopupMenu, работает ))
Да и наверное последний вопрос: разворачиваю каталог выделяю документ, далее нажимаю на "+" или "-" чтобы свернуть VT а он распознает нажатие на "+/-" как нажатие на документ и он повторно перезагружает документ. ![]() Как можно сделать чтобы VT не распознавала нажатие на "+/-" как нажатие на документ? |
|||
|
||||
| kami |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Если еще актуально: код OnClick и/или OnMouseDown (что от него осталось) - в студию. Навскидку: перенести код, отвечающий за загрузку/перезагрузку документа в событие onChange (возникает при смене фокуса с нода на нод). Типа так:
Это сообщение отредактировал(а) kami - 17.5.2010, 13:01 |
||||
|
|||||
| Norfonzor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 17.10.2008 Репутация: нет Всего: нет |
kami, Актуально! еще раз спасибо за помощь, ждал твоего ответа. Как всегда все отлично работает!!!
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |