|
|
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Привет, народ. Вы мне тут периодически помогаете, большое всем спасибо. Вот на этот раз вопрос: как же все-таки организовать работу контекстного для папочек? Ну то есть там Добавить и вся байда. В какой метод что записать? И еще отдельный вопрос: как организовать переименование папочки. Есть метод StartLabelEdit, но не пойму как он работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2005, 16:59:33 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
для переименования есть api функция DECLARE INTEGER MoveFile IN kernel32 STRING , STRING MoveFile ("с:\abc","<c:\cba >") В первом имя папки которую нужно переименовать, во втором новое имя. Функция должна возвращать любое положительное число, 0 - это ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2005, 18:23:49 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
http://www.foxclub.ru/sol/index.php?act=view&id=188 Решение не без глюков, но как работает контекстное меню там есть. StartLableEdit - это команда, которая говорит, что следует начать редактировавние текста узла. Т.е. это способ начать редактирование текста узла программно . Имеет смысл, при установке TreeView.LabelEdit = 0 - Automatic ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2005, 18:23:55 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
To ВладимирМ По поводу MoveFile. Я пытаюсь переименовать, но уменя выходит 0. Что нехватет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2005, 18:34:23 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
To ВладимирМ Дополнение. Этот код был взят с примера где указывалось что его можно использовать и для папок! Обманули? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2005, 19:01:25 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Да нет, ребята, переименовать не папку на диске, а папку в дереве. Имя книжечки. Как сделать, чтобы это мог сделать пользователь, интерактивно. Он вызывает контекстное меню, выбирает там "Переименовать", и у него имя книжечки становится редактируемым, в нем мигает курсор, а потом он нажимает Enter или еще что, и то, что он написал, запоминается в качестве нового имени в дереве и в таблице каталогов соответственно. Вот чего надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2005, 20:13:22 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
1. Я отвечал на вопрос о TreeView. Имеется в виду, ActiveX компонент Microsoft TreeView. 2. По поводу работы с файлами есть очень хороший объект Scripting.FileSystemObject Для чтения или изменения имени файла следует воспользоваться методом Name. Пример в синтаксисе FoxPro приведен здесь http://kodu.neti.ee/~juri4/vfpplus/vbs_fso_04_ru.htm#Name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2005, 21:08:01 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
to ВладимирМ. Я так понимаю, вы ответили в послднем посте не на мой вопрос? А как же мой? Ответьте, плиз. Как организовать переименование интерактивное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 09:44:18 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Solmyrto ВладимирМ. Я так понимаю, вы ответили в послднем посте не на мой вопрос? В первом посте ответ на Ваш вопрос. Там нет ничего сложного. Посмотрите во вложении примерчик. Хотя, более управляемым явялется редактирование через отдельную формочку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 10:40:26 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
to ВладимирМ Спасибо за сийт. Очень полезная сылка. ----------------- Рекомендую всем! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 11:12:28 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Ага. Вот теперь работает. Сенкс. А с меню прикол. Сделал, как ты говоришь, вроде все работает, но перестала закрываться форма. Нажимаю на крестик, он становится серенький, а форма не закрывается. Т.е. зависает. Если убираю код из метода DblClick, все нормально. Кроме отсутствия меню, ест-но. Что за бред? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 13:02:40 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Т.е. в MouseDown, простите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 13:12:47 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
SolmyrАга. Вот теперь работает. Сенкс. А с меню прикол. Сделал, как ты говоришь, вроде все работает, но перестала закрываться форма. Нажимаю на крестик, он становится серенький, а форма не закрывается. Т.е. зависает. Если убираю код из метода DblClick, все нормально. Кроме отсутствия меню, ест-но. Что за бред? Это не бред. Это глюк Связан с тем, что остались активные объекты Nodes. Точнее, ссылки на эти объекты. Помогает принудительная очистка TreeView перед закрытием формы (ThisForm.MyTree.Clear) или его ручное удаление. Т.е. в методе Unload-формы нужно написать что-то ворде Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 13:59:39 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Глянь тут: http://www.caws.atnet.ru/vfox/vfoxpro1.html Может что-нибудь пригодится! С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 14:29:46 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
to ВладимирМ. А вот и не работает. Ставлю в Unload: THISFROM.RemoveObject("CatalogTree"), а он мне говорит - объект CatalogTree не найден, хотя он у меня так называется. Что опять не так делаю? to Aleksey-K. Сенкс за ссылочку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 09:32:13 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Solmyr А вот и не работает. Ставлю в Unload: THISFROM.RemoveObject("CatalogTree"), а он мне говорит - объект CatalogTree не найден, хотя он у меня так называется. Что опять не так делаю? Так может у тебя TreeView не на форме лежит, а на PageFrame ? ВладимирМ только для примера привел THISFROM.RemoveObject(...), а ты должен поставить свой полный путь у объекту CatalogTree, например: THISFROM.MyFrames.Page3.RemoveObject("CatalogTree") или подобное. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 09:42:38 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Solmyr А вот и не работает. Ставлю в Unload: THISFROM.RemoveObject("CatalogTree"), а он мне говорит - объект CatalogTree не найден, хотя он у меня так называется. Что опять не так делаю? Кстати, ВладимирМ не зря привел код с проверкой существования CatalogTree. По идее, к моменту UnLoad, все объеты форму уже должны быть удалены из памяти самим VFP и даже с TreeView это так и обычно и происходит, но иногда происходит глюк о котором упоминал ВладимирМ. Поэтому, проверку типа IF TYPE("ThisForm.MyTree") = "O" обязательно оставь. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 09:48:34 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
"... Я бы рад, да мой портрет для меня и то - секрет ..." (с) У меня он лежит прямо на форме. Становлюсь на него в дизайне и вижу внизу: frmCfgMain.CatalogTree . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 14:37:58 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Hi Aleksey-K! в Unload это бессмысленно - если форма "подвисает" то до него дело не доходит. Если же закрывается корректно - то его к тому моменту уже и нету... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 23:38:40 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Так это не я пример приводил с UnLoad(), а ВладимирМ :) Я все закрытия программные делаю в Destroy() С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 09:29:54 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Ага, ребят, спасибо. Через Destroy действительно работает. У меня и самого была такая мысля, но что-то не попробовал. А скажите, вот с этим HitTest обязательно заморачиваться или все же есть более человеческие пути? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 09:41:09 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
SolmyrА скажите, вот с этим HitTest обязательно заморачиваться или все же есть более человеческие пути? Так ты же обрабатываешь нажатие клавиши мыши. Как иначе можно узнать на какой именно узел внутри TreeView ты надавил? Ведь никаких событий собственно узла еще не происходит, т.е. нельзя привязаться к событию узла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 12:52:13 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Ага, HitTest вставил. Все вроде работает. Только вот если нажать на один узел правой, а потом на другой тоже правой, не убирая меню от предыдущего нажатия, то фильтрация в гриде справа происходит не всегда, хотя передвижение в таблице каталогов, по которой фильтрация идет, происходит, я отсмотрел. И обновление грида стоит. Или это правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 13:15:25 |
|
||
|
Как организовать контекстное меню в TreeView?
|
|||
|---|---|---|---|
|
#18+
Да, и еще. Как сделать, чтобы при открытии формы корневой каталог разворачивался на один уровень? У меня в Init TreeView стоит: THIS.Expand(THIS.Nodes(1)). И ни фига он не разворачивается. Наверно опять что-то не так сделал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 13:18:43 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33236057&tid=1593603]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
189ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 481ms |

| 0 / 0 |
