|
|
|
TreeView и меню POPUP
|
|||
|---|---|---|---|
|
#18+
Добрый день All !!! Вот, при возне с TreeView получается такая ерунда. Из вызванного, правой кнопкой мыши над TreeView, меню пользователь выбирает действие. В случае если он выбрал "Редактировать", получается не так, как хотелось бы... как я понимаю достаточно вызвать метод StartLabelEdit() и все... но не выходит. Т.е. появляется рамка (в которой редактируется текст элемента TreeView) и сразу же исчезает, не предоставив возможность изменить данные... Если же добавить задержку в код ( в моем случае wait '' timeout 0.1) то редактировать можно, но не видно КУРСОРА и соответственно не видно с какой позиции будут добавляться символы. КОД: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Если в методе DBlClick() я прописываю THIS.StartEditLabel() то все прекрасно работает!!!! Где я перемудрил (или недомудрил) ;) Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2007, 15:33 |
|
||
|
TreeView и меню POPUP
|
|||
|---|---|---|---|
|
#18+
Попробуй так В методе напиши DblClick() напиши THIS.StartLabelEdit() адалее LPARAMETERS lcPrompt, lnBar DEACTIVATE POPUP _Edit_ RELEASE POPUPS _Edit_ DO CASE CASE lnBar=1 && --- Добавить элемент THIS.Add_new_item() CASE lnBar=2 && --- редактировать элемнт THIS.SetFocus() THIS.dblcick() CASE lnBar=3 && --- удалить элемнт THIS.DeleteItem() ENDCASE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2007, 21:35 |
|
||
|
TreeView и меню POPUP
|
|||
|---|---|---|---|
|
#18+
Из приведенного примера непонятно, в каком методе вызывается код. Я использовал MSComctlLib.TreeCtrl.2. В нем нет события RightClick. Поэтому в его событии MouseUp написал: *** ActiveX Control Event *** LPARAMETERS button, shift, x, y IF button=2 NODEFAULT this.startLabelEdit ENDIF и все работает. Если писать в событиях самой формы, то надо так (RightClick): NODEFAULT thisform.tree.startlabeledit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 09:21 |
|
||
|
TreeView и меню POPUP
|
|||
|---|---|---|---|
|
#18+
ПогодинИз приведенного примера непонятно, в каком методе вызывается код. Я использовал MSComctlLib.TreeCtrl.2. В нем нет события RightClick. Поэтому в его событии MouseUp написал: *** ActiveX Control Event *** LPARAMETERS button, shift, x, y IF button=2 NODEFAULT this.startLabelEdit ENDIF и все работает. Если писать в событиях самой формы, то надо так (RightClick): NODEFAULT thisform.tree.startlabeledit Спасибо! Действительно, код я влупил в MouseDouwn. Если без меню, сделать так как вы описали, то работает, а если вызывать метод из меню, то уже не работает... Теперь перенес его в MouseUp результат чуть лучше, но не идеальный... Теперь курсор появился, но без Код: plaintext В методе MouseUp я рисую меню (по клику правой кнопкой), изменю вызываю метод My_Tree.Choice(), ну а в нем сам код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. в принципе, я выкрутился, но "выкрутился" значит неправильно решал ... хотелось бы понять, где ошибаюсь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 10:37 |
|
||
|
TreeView и меню POPUP
|
|||
|---|---|---|---|
|
#18+
Надеюсь, сделана глобальная настройка Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 10:41 |
|
||
|
TreeView и меню POPUP
|
|||
|---|---|---|---|
|
#18+
ВладимирМНадеюсь, сделана глобальная настройка Код: plaintext Сделал, не помогло... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 10:49 |
|
||
|
TreeView и меню POPUP
|
|||
|---|---|---|---|
|
#18+
уведите фокус с дерева затем вызовите StartLabelEdit также помогает оборачивание вызова StartLabelEdit в ассайн метод какого-нить другого объекта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 10:56 |
|
||
|
TreeView и меню POPUP
|
|||
|---|---|---|---|
|
#18+
alex11100уведите фокус с дерева затем вызовите StartLabelEdit Так он, вроде бы теряет фокус, ведь меню POPUP его забирает на себя... или я ошибаюсь? alex11100также помогает оборачивание вызова StartLabelEdit в ассайн метод какого-нить другого объекта я все методы разместил в TreeView, хотел сделать его независимым от других объектов, т.е. чтобы все необходимое было в нем. Может как раз так и нельзя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 11:08 |
|
||
|
TreeView и меню POPUP
|
|||
|---|---|---|---|
|
#18+
пример не мой вообще-то тривью нужно оформить как класс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 11:25 |
|
||
|
TreeView и меню POPUP
|
|||
|---|---|---|---|
|
#18+
в методе filltree замените код на такой Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. дурдом конечно, так дерево поднимать нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 11:35 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34411113&tid=1589671]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
165ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 439ms |

| 0 / 0 |
