BOSS2005 написал "Посмотрев тут несколько примеров по этому вопросу, решил - что меня это все не устраивает. один пример использовал процедуру SetCapture но она мне не понравилась тем, что контрол теряется и к примеру форму нельзя двигать. другой пример с отловом событий CM_MOUSELEAVE/CM_MOUSEENTER тоже меня не устроил - потому что глючит и когда быстро двигать мышкой не срабатывает. я решил посадить всю эту проверку на таймер задав его интервал к примеру 50 мс и создав событие (см. ниже)"
У меня возникла ситуация, когда требуется показать на форме вызывающей
программы (Host Application) из DLL какой-либо контент. Например панельку с
кнопочками. Т.е. у меня есть 2 проекта - в каждом по одной форме. Показать форму
из DLL - очень просто. Это много обсуждалось и есть довольно большое колличество
примеров (в том числе и в DelphiWorld). Но мне требуется показать что-либо из
DLL в самой программе (для примера - Norton Internet Security - в окошке статуса
можно видеть как он подгружает интерфейс NAV).
Как "словить" окно? Под словом "словить" я имею ввиду то, как обнаружить наличие окна (любого окна) среди других окон. Функция "ловли окна" очень часто используется в том случае если вам необходимо совершить над ним (окном) какое-нибудь действие: закрыть, переместить, спрятать, изменить размеры и т.д.
Вас наверное часто удивляла форма окна, которая появляется при загрузке Norton Utilites и других подобных программ. Она имела не прямоугольный размер и ВЫ задавались вопросом : как получить такую форму?
Нет, конечно, никакого отношения это статья к привычным извращениям не имеет, просто рассказывает, как можно подглядывать в чужие окна.
(подробнее... | 35062 байтов еще | Всего: 5)
Разместил: rolcom на 13/03/2004 ( Прочитано: 8717 )
В статье Виталия ДРЕБНИЦЫ «Artix'тический диск» (МК №51 (222)) уже рассматривалась тема создания аutorun'ов к компакт-дискам с помощью специальных программ. Но даже сам автор статьи признавался, что творения сии получаются кривыми и большими по размеру. Пользователя это, может быть и устраивает, но только не программиста. Имея хоть какие-нибудь навыки программирования, можно написать autorun, значительно превосходящий по всем качествам то, что создается вышеупомянутыми «генерилками». В этой статье пойдет речь о том, как это сделать в Delphi.
Основной критерий качества ПО - его функциональность. Но в наше время разработчики коммерческого софта должны думать и о том, что принято называть "товарным видом продукции. Как говорится, по одежке встречают, по уму провожают" - здесь в роли "одежки" выступают красивая коробка, качественно изданная документация - и, конечно же, броский и удобный интерфейс программы.
Как "словить" окно? Под словом "словить" я имею ввиду то, как обнаружить наличие окна (любого окна) среди других окон. Функция "ловли окна" очень часто используется в том случае если вам необходимо совершить над ним (окном) какое-нибудь действие: закрыть, переместить, спрятать, изменить размеры и т.д. Еще раз скажу, что все эти действия будут совершаться над "чужими" окноми, т.е. не над теми которые ва разрабатываете, а над окнами других приложений. Итак вы уже поняли ( я надеюсь ) для чего нужно "словить" окно.
Всё или почти всё (хотя я не возьмусь сказать, что именно составляет исключение) в Windows имеет свой хэндл (Handle). Интересен перевод системой Сократ термина «Handle» — «Ручка», на нормальном техническом русском это будет дескриптор (определитель, идентификатор, описатель). Таким образом, handle — некий уникальный идентификатор любого ресурса Windows. Каждое окно имеет свой собственный дескриптор.
Иногда для получения визуального эффекта хочется в обыкновенную программу на Delphi добавить Form, которая бы имела очертания, совпадающие с картинкой (произвольной формы). Основная проблема в этом случае связана с получением координат краев картинки, так как технология задания формы для Form хорошо известна. Для работы понадобится кроме Delphi еще программа PhotoShop (реально любой версии).