powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как организовать контекстное меню в TreeView?
25 сообщений из 30, страница 1 из 2
Как организовать контекстное меню в TreeView?
    #33228448
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, народ. Вы мне тут периодически помогаете, большое всем спасибо.
Вот на этот раз вопрос: как же все-таки организовать работу контекстного для папочек? Ну то есть там Добавить и вся байда. В какой метод что записать?
И еще отдельный вопрос: как организовать переименование папочки. Есть метод StartLabelEdit, но не пойму как он работает.
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33228690
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для переименования есть api функция

DECLARE INTEGER MoveFile IN kernel32 STRING , STRING
MoveFile ("с:\abc","<c:\cba >")

В первом имя папки которую нужно переименовать, во втором новое имя.
Функция должна возвращать любое положительное число, 0 - это ошибка.
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33228691
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.foxclub.ru/sol/index.php?act=view&id=188

Решение не без глюков, но как работает контекстное меню там есть.

StartLableEdit - это команда, которая говорит, что следует начать редактировавние текста узла. Т.е. это способ начать редактирование текста узла программно . Имеет смысл, при установке

TreeView.LabelEdit = 0 - Automatic
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33228721
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To ВладимирМ

По поводу MoveFile. Я пытаюсь переименовать, но уменя выходит 0. Что нехватет?
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33228766
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To ВладимирМ
Дополнение.
Этот код был взят с примера где указывалось что его можно использовать и для папок! Обманули?
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33228875
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нет, ребята, переименовать не папку на диске, а папку в дереве. Имя книжечки. Как сделать, чтобы это мог сделать пользователь, интерактивно. Он вызывает контекстное меню, выбирает там "Переименовать", и у него имя книжечки становится редактируемым, в нем мигает курсор, а потом он нажимает Enter или еще что, и то, что он написал, запоминается в качестве нового имени в дереве и в таблице каталогов соответственно. Вот чего надо.
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33228917
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Я отвечал на вопрос о TreeView. Имеется в виду, ActiveX компонент Microsoft TreeView.

2. По поводу работы с файлами есть очень хороший объект Scripting.FileSystemObject

Для чтения или изменения имени файла следует воспользоваться методом Name. Пример в синтаксисе FoxPro приведен здесь

http://kodu.neti.ee/~juri4/vfpplus/vbs_fso_04_ru.htm#Name
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33229222
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to ВладимирМ.
Я так понимаю, вы ответили в послднем посте не на мой вопрос? А как же мой? Ответьте, плиз. Как организовать переименование интерактивное.
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33229353
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Solmyrto ВладимирМ.
Я так понимаю, вы ответили в послднем посте не на мой вопрос?
В первом посте ответ на Ваш вопрос. Там нет ничего сложного. Посмотрите во вложении примерчик.

Хотя, более управляемым явялется редактирование через отдельную формочку.
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33229455
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to ВладимирМ

Спасибо за сийт. Очень полезная сылка.


-----------------
Рекомендую всем!
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33229780
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага. Вот теперь работает. Сенкс.
А с меню прикол. Сделал, как ты говоришь, вроде все работает, но перестала закрываться форма. Нажимаю на крестик, он становится серенький, а форма не закрывается. Т.е. зависает. Если убираю код из метода DblClick, все нормально. Кроме отсутствия меню, ест-но.
Что за бред?
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33229813
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. в MouseDown, простите.
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33229992
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolmyrАга. Вот теперь работает. Сенкс.
А с меню прикол. Сделал, как ты говоришь, вроде все работает, но перестала закрываться форма. Нажимаю на крестик, он становится серенький, а форма не закрывается. Т.е. зависает. Если убираю код из метода DblClick, все нормально. Кроме отсутствия меню, ест-но.
Что за бред?
Это не бред. Это глюк

Связан с тем, что остались активные объекты Nodes. Точнее, ссылки на эти объекты. Помогает принудительная очистка TreeView перед закрытием формы (ThisForm.MyTree.Clear) или его ручное удаление.

Т.е. в методе Unload-формы нужно написать что-то ворде

Код: plaintext
1.
2.
3.
IF TYPE("ThisForm.MyTree") = "O"
	ThisForm.RemoveObject("MyTree")
ENDIF
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33230086
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глянь тут: http://www.caws.atnet.ru/vfox/vfoxpro1.html
Может что-нибудь пригодится!
С уважением, Алексей.
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33233160
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to ВладимирМ.
А вот и не работает. Ставлю в Unload:
THISFROM.RemoveObject("CatalogTree"),
а он мне говорит - объект CatalogTree не найден, хотя он у меня так называется. Что опять не так делаю?
to Aleksey-K.
Сенкс за ссылочку.
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33233186
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Solmyr
А вот и не работает. Ставлю в Unload:
THISFROM.RemoveObject("CatalogTree"),
а он мне говорит - объект CatalogTree не найден, хотя он у меня так называется. Что опять не так делаю?

Так может у тебя TreeView не на форме лежит, а на PageFrame ?
ВладимирМ только для примера привел THISFROM.RemoveObject(...), а ты должен поставить свой полный путь у объекту CatalogTree, например:
THISFROM.MyFrames.Page3.RemoveObject("CatalogTree") или подобное.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33233198
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Solmyr А вот и не работает. Ставлю в Unload:
THISFROM.RemoveObject("CatalogTree"),
а он мне говорит - объект CatalogTree не найден, хотя он у меня так называется. Что опять не так делаю?

Кстати, ВладимирМ не зря привел код с проверкой существования CatalogTree.
По идее, к моменту UnLoad, все объеты форму уже должны быть удалены из памяти самим VFP и даже с TreeView это так и обычно и происходит, но иногда происходит глюк о котором упоминал ВладимирМ. Поэтому, проверку типа IF TYPE("ThisForm.MyTree") = "O" обязательно оставь.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33234259
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"... Я бы рад, да мой портрет для меня и то - секрет ..." (с)
У меня он лежит прямо на форме. Становлюсь на него в дизайне и вижу внизу: frmCfgMain.CatalogTree .
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33235118
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Aleksey-K!

в Unload это бессмысленно - если форма "подвисает" то до него дело не
доходит. Если же закрывается корректно - то его к тому моменту уже и нету...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33235347
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так это не я пример приводил с UnLoad(), а ВладимирМ :)
Я все закрытия программные делаю в Destroy()
С уважением, Алексей.
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33235388
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, ребят, спасибо. Через Destroy действительно работает. У меня и самого была такая мысля, но что-то не попробовал.
А скажите, вот с этим HitTest обязательно заморачиваться или все же есть более человеческие пути?
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33235934
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolmyrА скажите, вот с этим HitTest обязательно заморачиваться или все же есть более человеческие пути?
Так ты же обрабатываешь нажатие клавиши мыши. Как иначе можно узнать на какой именно узел внутри TreeView ты надавил? Ведь никаких событий собственно узла еще не происходит, т.е. нельзя привязаться к событию узла.
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33236025
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, HitTest вставил. Все вроде работает.
Только вот если нажать на один узел правой, а потом на другой тоже правой, не убирая меню от предыдущего нажатия, то фильтрация в гриде справа происходит не всегда, хотя передвижение в таблице каталогов, по которой фильтрация идет, происходит, я отсмотрел. И обновление грида стоит.
Или это правильно?
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33236033
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, и еще.
Как сделать, чтобы при открытии формы корневой каталог разворачивался на один уровень?
У меня в Init TreeView стоит:
THIS.Expand(THIS.Nodes(1)).
И ни фига он не разворачивается. Наверно опять что-то не так сделал?
...
Рейтинг: 0 / 0
Как организовать контекстное меню в TreeView?
    #33236057
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо сначала выбрать ноду

this.nodes[1].selected = .t.
this.nodes[1].expanded = .t.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как организовать контекстное меню в TreeView?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]