Добрый день!
Сделал я небольшую оболочку для TightVNC.
Выкладываю полный пакет что бы было понятнее.
http://forum.hiasm.com/forum_serv.php?q=56&id=3255
Все бы меня устраивает, однако никак не могу сделать что бы работал PopupMenu в StringTableMT так как я хочу.
А хочу я при нажатии прав. кн. мыши на строке в таблице, строка стала выделенной и только потом появилось доп. меню.
Пока я смог добиться появления доп. меню с точностью до наоборот, т.е. при нажатии прав. кн. мыши на строке в таблице,
появляется меню, но строка в таблице не выделяется, после выбора пункта в доп. меню, оно (меню) пропадает и строка в таблице становится выделенной.
Прошу вашей помощи в решении вопроса на базе моей схемы, т.к если брать чистую StringTableMT, ничем не обвешанную, то вроде работает как надо.
Этот топик читают: Гость
Ответов: 817
Рейтинг: 52
|
|||
карма: 1 |
|
Разработчик
Ответов: 26156
Рейтинг: 2127
|
|||
-= DriveR =-, твой файл имеет 0-ю длину, если что. А по сабжу можно было бы что-то сказать, если был бы небольшой пример, а не просмотр целого проекта. Неужели нельзя сделать схемку из нескольких компонентов
------------ Дoбавленo в 13.31: А пока что, могу только посоветовать поставить таймер или DeferredEvent перед вызовом меню. Дело в том, что отрисовка и выполнение всех селекторов в таблице происходит по окончанию цепи событий, когда управление передается системе, а ты пытаешься вклиниться со своим меню до передачи управления системе. |
|||
карма: 22 |
|
Ответов: 817
Рейтинг: 52
|
|||
nesco писал(а): вой файл имеет 0-ю длину, если чтоДействительно очень странно, перезаливал несколько раз и все равно размер=0, хотя на самом деле 190кб. ну да ладно nesco писал(а): А по сабжу можно было бы что-то сказать, если был бы небольшой примерСогласен, исправляюсь пример: code_28951.txt теперь расскажу: В примере при клике на любой строке, после отпускания кн. мыши должно появиться контекстное меню, но не появляется. (такое отрабатывает только в пустом месте таблицы) Если в StringTamleMT связь с точки onMouseUp поменять на onMouseDown, то все работает, но не так как надо. nesco писал(а): посоветовать поставить таймер или DeferredEvent перед вызовом менюСейчас попробую. |
|||
карма: 1 |
| ||
файлы: 1 | code_28951.txt [423B] [448] |
Разработчик
Ответов: 26156
Рейтинг: 2127
|
|||
Все правильно
-= DriveR =- писал(а): после отпускания кн. мышиonMouseUp работает -= DriveR =- писал(а): только в пустом месте таблицыТак работает везде в системном классе ListView, коим наследником и является наша таблица. Это старая и дремучая борода, которую вытягивают регулярно на форуме |
|||
карма: 22 |
|
Ответов: 817
Рейтинг: 52
|
|||
nesco,
спасибо за совет воспользовался DeferredEvent и все работает как надо |
|||
карма: 1 |
|
Ответов: 1926
Рейтинг: 172
|
|||
У меня и с DeferredEvent не работает. nesco, как должно работать, можно код?
|
|||
карма: 9 |
|
Ответов: 165
Рейтинг: 6
|
|||
3042,
|
|||
карма: 4 |
| ||
Голосовали: | 3042 |
Ответов: 1926
Рейтинг: 172
|
|||
Nickname, спасибо, однако я думал, что это для onMouseUp. А заставить работать onMouseUp нет способов?
|
|||
карма: 9 |
|
Ответов: 165
Рейтинг: 6
|
|||
3042, нет. А разве нужный эффект не достигнут?
|
|||
карма: 4 |
|
Ответов: 1926
Рейтинг: 172
|
|||
Достигнут. Но тут уже возник чисто спортивный интерес - почему onMouseUp не хочет работать. В сети толком ничего не нашёл, хотя даже в MS проблему сообщали: https://bytes.com/topic/c-sharp/answers/792271-listview-mouseup-event. Я так понял, Tom Bean проблему как-то решил, но подробностей нет.
|
|||
карма: 9 |
|
Ответов: 1926
Рейтинг: 172
|
|||
Костылём решил проблему и для onMouseUp:
|
|||
карма: 9 |
|
11