Както уже поднимали вопрос на эту тему а вот найти её не удалось...
Хотел зделать програмку для разблокирования заблокированных элементов формы , но столкнулся с трудностью , несмог получить hendle заблокированного элемента формы
code_11036.txt
Может кто чего посоветует ?
Этот топик читают: Гость
Ответов: 893
Рейтинг: 18
|
|||
карма: 0 |
| ||
файлы: 1 | code_11036.txt [1KB] [190] |
Ответов: 1161
Рейтинг: 160
|
|||
странно - если кнопка заблокирована, то твоя схема пытается разблокировать форму, а если сделать кнопку разблокированной, а вместо операции "разблокировать" сделать "заблокировать", то будет работать(ух говорю и не понимаю, что говорю )
|
|||
карма: 0 |
|
Ответов: 893
Рейтинг: 18
|
|||
LainX, Да так и есть , элементы на которые можно получить хендл только активные , а вот как получить хендл не активного (заблокированного) элемента формы ума не приложу .
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
LainX писал(а): странноничего странного MSDN писал(а): Remarks
The WindowFromPoint function does not retrieve a handle to a hidden or disabled window, even if the point is within the window. An application should use the ChildWindowFromPoint function for a nonrestrictive search. |
|||
карма: 27 |
|
Ответов: 893
Рейтинг: 18
|
|||
Dilma, а как выйти из ситуаци красиво и со вкусом ?
Ато чёто ничего не приходит на ум как отыскать ету злосчастную кнопку... Упс забыл авторизироватся |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
в этой же цитате и написано как...
|
|||
карма: 27 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 2 раз(а), последний 2025-01-09 19:28:06 |
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 2 раз(а), последний 2025-01-09 19:28:06 |
|||
карма: 0 |
|
Ответов: 893
Рейтинг: 18
|
|||
Орегинал код элемента маус ;)
Заменил на
Результат Подготовка к сборке проекта...
Генерация кода целевого языка Компоновка проекта... Command line: dcc32.exe "C:\Program Files\HiAsm2\Elements\delphi\code\Project1.dpr" "-UC:\Program Files\HiAsm2\." -Q Borland Delphi Version 12.0 Copyright (c) 1983,98 Inprise Corporation C:\Program Files\HiAsm2\Elements\delphi\code\hiMouseEvent.pas(112) Error: Incompatible types: 'HWND' and 'TPoint' C:\Program Files\HiAsm2\Elements\delphi\code\Project1.dpr(16) Fatal: Could not compile used unit 'hiMouseEvent.pas' Сборка завершена. |
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Buik, естественно, ибо сказано в MSDN
MSDN писал(а): Syntax HWND ChildWindowFromPoint( HWND hWndParent, POINT Point ); |
|||
карма: 1 |
|
Ответов: 893
Рейтинг: 18
|
|||
iarspider, а вот етого я пока не понял , естли найдёш свободную минутку растолкуй пожалуйста в чём фокус ?
Я конечно интуитивно понимаю что пролема в синтаксисе , но пока что мои знания не позволяют свободно разбиратся в исходном коде делфи |
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Byuik, поясняю:
Для вызова ChildWindowFromPoint нужны два аргумента: HWND и TPoint, а для вызова WindowFromPoint - только один TPoint. Когда ты попытался слепо использовать эту функцию, ты получил сообщение: "Я (компилятор) не знаю, как из TPoint сделать HWND". Чтобы использовать ChildWindowFromPoint нужно получить HWND родительского окна, в котором по координатам ищем дочернее окно. |
|||
карма: 1 |
|
Ответов: 893
Рейтинг: 18
|
|||
iarspider, так получается HWND это то что получает сейчас фцнкция WindowFromPoint , и для использования функции ChildWindowFromPoint нужен результат функции WindowFromPoint .
Я правильно выражаюсь ? |
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Эм... Не совсем. HWND - это (уникальный) числовой идентификатор окна. Как его получили - вопрос второй (например - через FindWindow).
|
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Byuik писал(а): так получается HWND это то что получает сейчас фцнкция WindowFromPointэто будет так только в том случае, если под недоступным элементом находится именно родительский контрол. В такой сиутации не прокатит code_11075.txt ну и наконец последний нюанс: ChildWindowFromPoint принимает точку с координатами клиентской области родительского элемента, а WindowFromPoint - с координатами экрана. |
|||
карма: 27 |
| ||
файлы: 1 | code_11075.txt [184B] [226] |