Страница 125 из 130
Добавлено: Вт янв 30, 2018 15:28
Flasher
MVV
ОК. Жду. И подумай по древнему запросу с блокировкой/перерисовкой отдельных компонентов главного окна ТС. А также про GetDlgItem.
Добавлено: Вт янв 30, 2018 15:50
MVV
Отдельные компоненты блокировать можно через
sendmsg(hwnd, $0B, ...). Перерисовка - это как
redraw? Можно опциональный параметр добавить...
А также про GetDlgItem.
А какой в дельфе смысл в
GetDlgItem? Они всегда от фонаря выбираются...
Добавлено: Вт янв 30, 2018 15:57
Flasher
MVV писал(а):Отдельные компоненты блокировать можно через sendmsg(hwnd, $0B, ...).
Где ж тебя с этой приятной новостью черти носили?!?

Слов нет...
Вроде логично, а сам даже не думал догадаться...
MVV писал(а):Перерисовка - это как redraw? Можно опциональный параметр добавить...
<hwnd> ? Было бы очень кстати.
MVV писал(а):А какой в дельфе смысл в GetDlgItem? Они всегда от фонаря выбираются...
Эмм. Ну, ты сам
предлагал с проверкой отлова.
Добавлено: Вт янв 30, 2018 16:26
MVV
Flasher писал(а):Эмм. Ну, ты сам
предлагал с проверкой отлова.
Но проблему же это всё равно не решит? Будет
getitem вместо
findwnd, и вся разница...
Добавлено: Вт янв 30, 2018 16:31
Flasher
Понятно.
Пытаюсь залочить на пять секунд левую панель — не выходит:
Код: Выделить всё
/ef sendmsg(findwnd(TMyListBox,,,1),$0B,0) delay(5000) sendmsg(findwnd(TMyListBox,,,1),$0B,1)
Добавлено: Чт фев 01, 2018 14:24
Flasher
MVV
Ну, так какие мысли по проблеме?
Добавлено: Чт фев 01, 2018 15:16
MVV
Первый раз попробовал, не работает, начал проверять, какой дескриптор находит findwnd(TMyListBox,,,1) - никакого. Посмотрел описание, запятых должно быть 4. Проверил с findwnd(TMyListBox,,,,1) - находит какой-то дескриптор, пробую, эффекта не видно. Посмотрел в дерево окон - это листбокс FTP-панели... Перезапустил тотал, попробовал снова - перерисовка панели блокируется, перемещения курсора не видно, хотя статусная строка обновляется... но не в левой, а правой панели! В общем, подводных камней тут хватает... TCFS2Tools, кстати, определяет левую панель среди множества листбоксов по тому, что она левее или выше правой. И, тоже кстати, в 9-ке можно получать панели специальным сообщением, в частности, msg(1074,1) возвращает дескриптор левой панели.
Добавлено: Чт фев 01, 2018 15:55
Flasher
Запятых 4? Но моя единица нужна для левой панели, собственно, поэтому у тебя эффект виден в правой, т. к. ты единицу перенёс на рекурсивный параметр. Т.е. в итоге работать в левой панели будет так:
Код: Выделить всё
/ef sendmsg(findwnd(TMyListBox,,,1,1),$0B,0) delay(5000) sendmsg(findwnd(TMyListBox,,,1,1),$0B,1) tcm(2918)
Но вопрос — зачем тут нужна рекурсия? Разве поиск не ведётся в активном окне?
MVV писал(а):И, тоже кстати, в 9-ке можно получать панели специальным сообщением, в частности, msg(1074,1) возвращает дескриптор левой панели.
Да, это я знаю.
Добавлено: Чт фев 01, 2018 16:09
MVV
Да, наверное рекурсия и правда не нужна, но почему-то у меня findwnd(TMyListBox,,,1) ничего не находит.
Так или иначе, если что-то не работает, надо постепенно разбираться.
Кстати, забавная особенность: если в заблокированной панели сменить папку, она разблокируется.
Добавлено: Чт фев 01, 2018 16:16
Flasher
MVV писал(а):но почему-то у меня findwnd(TMyListBox,,,1) ничего не находит.
Ну, я с этой ситуации и начал. Хорошо бы разобраться.
Особенность, конечно, интересная, но не радужная, т. к. блокировка часто нужна как раз при смене директории. В случае блокировки окна ТС по msg($0B,0) этого нет. Собственно, и при блокировке панели с помощью компонента TCHelper.
[cut="А по TMyTabControl блокировка вообще не наблюдается:"]
Код: Выделить всё
/ef sendmsg(findwnd(TMyTabControl,,findwnd(TMyPanel,,,2),1,1),$0B,0) delay(5000) sendmsg(findwnd(TMyTabControl,,findwnd(TMyPanel,,,2),1,1),$0B,1) tcm(2918)
[/cut]
Добавлено: Вт мар 20, 2018 19:02
Flasher
MVV
С месяц назад задался вопросом насчёт установки стилей для всяких окон помимо главного ТС. Можешь добавить?
Добавлено: Вт мар 20, 2018 21:13
MVV
Добавить-то могу, но жалко, что консистенция имён функций страдает...
Добавлено: Вт мар 20, 2018 21:24
Flasher
А от чего страдает-то? Можно приставку ex или ext добавить.
Добавлено: Ср мар 21, 2018 09:49
MVV
Назову я её скорее wndstyle... Хотя, конечно, в данном конкретном случае можно просто текущей функции добавить новый опциональный аргумент, как это сделано, например, у функции send.
Добавлено: Ср мар 21, 2018 10:15
Flasher
ОК. Аргумент ещё лучше.