|
|
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Ребята, делаю для себя панель быстрого запуска, с ярлыками и тд.. Есть две формы, обе скрыты ( hide ). Form1 - главная, с которой работаю. ( formstyle = stayontop ) Form2 - Появляется с краю экрана, когда позиция курсора X < 2 , служит для показа главной формы( по onclick - Fomr1.show; ) Необходимо перекинуть файлы из проводника на Form1 . Я же не могу одновременно перетаскивать файл и делать онклик на Form2 ... По этому на Form2 сделал по таймеру проверку, если курсор находится на Form2 больше секунды - показываем Form1 , и уже в него кидаем файлы. Файлы кидаю на Image , получая иконки. Каждый Image.tag пронумерован. Переменная SensorTag , при mousemove по Image , получает его TAG . По этой переменной я и перетаскиваю файлы в нужный мне Image . Теперь сама проблема: Если взять любой файл, попробовать перетащить его на Form2 , откроется Form1 . Но переменная SensorTag не принимает никаких значений, пока не отпущу кнопку мыши. То бишь форма появляется, но без фокуса что ли... Не знаю как это называется. От этого вылетает ошибка, либо файл кидается в ту Image , по которым последний раз mousemove`ли.. Но никак не на ту, на которую навожу курсор. Я пробовал Form1.setfocus; Form1.Edit1.setfocus; - на что надеялся?)) Но это не помогает. Нужно именно кликнуть на форму, что бы она стала активной. Можно ли как-то активировать форму программно? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 07:36 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Почитай про SetCapture. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 07:45 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
wadmanПочитай про SetCapture. Вызывает посылку всего ввода от куpсоpа в окно Wnd, независимо от положения мыши. Но я не понял, как мне это поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 08:09 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Tech N9neМожно ли как-то активировать форму программно? Спасибо.легально - нельзя, да и толку от этого мало в windows, на уровне апи, активным может быть только 1 единственное окно на все запущенные программы есть такая функция DragQueryPoint а вообще лучше почитать вот этот тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 08:56 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), kealon(Ruslan)в windows, на уровне апи, активным может быть только 1 единственное окно на все запущенные программы Так мне не два нужно, одно ведь, конкретное. Проблема именно в зажатой кнопки мыши. Если её отпустить и проделать тоже самое, то переменная при movemove по Image, получает их tag. Цитата из гугла: googleфункцией DragQueryPoint, которая, если не ошибаюсь, возвращает координаты курсора в момент сбрасывания файлов на форму. Я подвожу курсор к какому либо Image`y, срабатывает mousemove, в ней я передаю переменной tag этого Image. В процедуре драгдропа, я обращаюсь к конкретному Image по этой переменной. Аля image[переменная]. Но всё спотыкается на стадии срабатывания mousemove. Оно не работает, так как кнопка мыши зажата и удерживает файл, от этого окно не активно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 12:17 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
а если ZOrder поправить, чтобы форма 2 всегда была над формой 1 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 12:51 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Ariochа если ZOrder поправить, чтобы форма 2 всегда была над формой 1 ? Для чего? Вы скорее всего не поняли меня.. Вот гифка, видно как иконка появляется на том Image, по которому последний раз водили курсором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 13:40 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Tech N9neесли курсор находится на Form2 больше секунды - показываем Form1 , и уже в него кидаем файлы. ну и где form2 ? на GIF-ке тоьлко одно окно, которое приклеено к левой бровке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 14:04 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
AriochTech N9neесли курсор находится на Form2 больше секунды - показываем Form1 , и уже в него кидаем файлы. ну и где form2 ? на GIF-ке тоьлко одно окно, которое приклеено к левой бровке Form2 - это синенький язычок, по клику которого, появляется Form1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 14:18 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Ну, если быть точным, это shape на Form2. Клик по нему = form1.show; навести на него и удерживать ~ 2 секунды = form1.show; При наведении на Image, в переменную SensorTag записывается Tag Image`a. Но как видите, с перетаскиваемым файлом, в переменную ничего не записывается. По этому иконка появляется на том Image, по которому последний раз водили курсором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 14:23 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Tech N9neНо как видите, с перетаскиваемым файлом, в переменную ничего не записывается. По этому иконка появляется на том Image, по которому последний раз водили курсором. Во время перетаскивания окно не получает сообщений об этом (о передвижении мыши). Только если операция завершится и только сообщение о "брошенных" файлах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 14:44 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Похоже, надо изучать исходники * melander's drag--n-drop pack * Virtual Tree View в части OLE Drag-n-drop * RxLib / JediVCL в части TFilenameEdit и TDirectoryEdit и их подержки для DnD wadmanВо время перетаскивания окно не получает сообщений об этом (о передвижении мыши). Разве??? Каждое окно при заходе в него должно сообщить системе, согласно ли оно принимать "груз" такого типа, или оно к нему неприменимо. Будет оно для конкретного груза выступать в качестве Drop Target или нет. Это, конечно, не WM_MOUSEMOVE - но тоже "про мышку" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 15:10 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
wadmanTech N9neНо как видите, с перетаскиваемым файлом, в переменную ничего не записывается. По этому иконка появляется на том Image, по которому последний раз водили курсором. Во время перетаскивания окно не получает сообщений об этом (о передвижении мыши). Только если операция завершится и только сообщение о "брошенных" файлах. Даже перетаскивать ничего не нужно. Именно зажатая лкм виновата. Вообще, пытаюсь сделать нечто похожее как у aimp. У них тоже можно встроить плеер в бок экрана, и он будет прятаться. А при наведении курсора появляется язычок, клик по которому показывает форму. Но у них так же реализован и dragdrop. При перетаскивании файла на язычок, появляется форма, и в нее успешно драгдропаются файлы. Как мне быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 15:11 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Tech N9neВот гифка, видно как иконка появляется на том Image, по которому последний раз водили курсором. А хочешь тупо-тупо ? помети над ВСЕМИ иконками одно de-facto прозрачное окно. не на уровне официального Windows 2000 уровня прозрачности (есл он 100% Windows не дура и перестаёт передавать события от user input), а просто, что оно есть, но себя не рисует по WM_PAINT, а рисует только окна под собой. А оно уже это прозрачное окно, перехватив мышку и поняв куда прилетело, будет раздавта ьгруз "иконкам" .....хотя правильно всё-таки разобраться в механизме DnD и правильно отрабатывать событие Drop собфтия Drag и Mouse Move для этого наверное не так сильно и нужны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 15:14 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Tech N9neКак мне быть? не использовтаь MouseMove - он для этого НЕ предназначен, и ты уже много раз в этом убедился использовать события и функции из раздела drag n drop ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 15:15 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Ничего, у нас тоже когда-то для окончания собятия перетаскивания вметсо OnDragDrop использовали OnExit тоже думали "так проще, я думать я не хочу" в результате были танцы с плясками вплоть до AV особенно смешно, когда окна, куда "перетаскивали" были вообще в этот момент на экране не видны .но пытались сработать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 15:19 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
AriochРазве??? Каждое окно при заходе в него должно сообщить системе, согласно ли оно принимать "груз" такого типа, или оно к нему неприменимо. Будет оно для конкретного груза выступать в качестве Drop Target или нет. Это делается заранее https://docs.microsoft.com/en-us/windows/desktop/api/shellapi/nf-shellapi-dragacceptfiles ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 15:30 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Tech N9neForm2 - это синенький язычок, по клику которого, появляется Form1. Клик-то тебе зачем? Это лишнее. показывай свою форму без клика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 15:36 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
wadman, это про участией в DnD в целом, а я про раздельную поддержку разных форматов это где-то тут надо исктаь: https://docs.microsoft.com/en-us/windows/desktop/shell/dragdrop •Implement and register an OLE drop target. Avoid using Windows 3.1 targets or the WM_DROPFILES message, if possible. Впрочем, автору и WM_DROPFILE должно хватить, тольк озаявлять надо не всю форму-1, а каждую иконку отдельно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 15:50 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Cobalt747Tech N9neForm2 - это синенький язычок, по клику которого, появляется Form1. Клик-то тебе зачем? Это лишнее. показывай свою форму без клика. Она будет мешать. Будет появляться каждый раз, как курсор приблизится к краю экрана. К примеру, есть FL Studio, в нём встроен браузер файлов, расположен он с той же стороны, я его так же скрываю. Появляется он при наведении курсора в туже область(к краю). Или еще пример, браузер opera, имеет главную кнопку меню в верхнем левом углу.. Я в нее не целюсь, а просто довожу курсор до упора в угол и нажимаю. Так что будет запарно, если оно автоматом будет выбегать, даже если ставить задержку... Я скорее откажусь от DnD, лишь бы оно автоматом не выбегало.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 15:51 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Ariochwadman, это про участией в DnD в целом, а я про раздельную поддержку разных форматов это где-то тут надо исктаь: https://docs.microsoft.com/en-us/windows/desktop/shell/dragdrop •Implement and register an OLE drop target. Avoid using Windows 3.1 targets or the WM_DROPFILES message, if possible. Впрочем, автору и WM_DROPFILE должно хватить, тольк озаявлять надо не всю форму-1, а каждую иконку отдельноя ему этот тынц уже писал, не хочет читать человек подписать на WM_DROPFILES можно только окно верхнего уровня Tech N9ne, ещё раз повторю, фокус устанавливать нельзя, так как функция переноса вылетит, она SetCapture устанавливает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 18:18 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)подписать на WM_DROPFILES можно только окно верхнего уровня окно верхнего уроня - это которое desktop ? или у которого флаг WS_EX_APPWINDOW ? как-то это странно! и TEdit из rx/jvcl и VTV - они как-то сами себя подписывают вполне. Есть HWND - и достаточно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 18:49 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
Arioch, я говорю, лень человеку копаться, WM_DROPFILES старый интерфейс более современный способ - RegisterDragDrop ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2019, 19:39 |
|
||
|
Активация формы, фокус, .....
|
|||
|---|---|---|---|
|
#18+
FoxpcАвтор походу делает свою оболочку ОС Просто автор не программист, а самоучка, причем только начинающий) То что люди кидают мне ссылки, мне и так многое не понятно, + еще и на англ языке. Я бы сказал что остаётся куча вопросов, но соврал бы, так как их появляется еще больше. ну да ладно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2019, 05:50 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39791987&tid=2039653]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
171ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 540ms |

| 0 / 0 |
