Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Форма в DLL: остаются подсвеченными SpeedButton


Автор: Alexeyt 10.11.2012, 15:52
Проблема только если форма в DLL. D7.
А именно- при проводе мышкой над рядом кнопок SpeedButton, кнопки остаются в mouseover состоянии, т.е. как будто мышь еще над ними. У кнопок стоит Flat=true. Манифест есть

Вот скрин, тут правда не speedbutton, а компонент из VirtualShellTools, но то же самое.

Автор: Alexeis 10.11.2012, 16:04
Механизм форм в Dll не всегда работает правильно, до тех пока не сделать это 
Цитата(http://docwiki.embarcadero.com/Libraries/XE3/en/Vcl.Forms.TApplication.Handle)

Note: When writing a DLL that uses VCL forms, assign the window handle of the host EXE's main window to the Handle property of the DLL's global Application variable. This makes the DLL's form part of the host application. Never assign to the Handle property in an EXE.

Но и в этом случае глюки бывают. У меня при нажатии кнопки ALT модальная форма из Dll глушила программу smile .

Автор: Alexeyt 10.11.2012, 16:18
Спасб--но не помогло.

Автор: Alexeis 10.11.2012, 16:52
  Нужно изучать вопрос. Компоненты SpeedButton являются не оконными. Это значит что события мыши обрабатываются нижележащим окном и передаются от родителя. Очевидно речь идет о событии мыши WM_MOUSEMOVE, поскольку WM_MOUSELEAVE актуально только для родительского окна. 
  Попробуйте написать тестовый проект, где будут присутствовать только необходимые элементы и ничего лишнего, для того чтобы быть уверенным, что проблема исключительно в компоненте  SpeedButton, а не является результатом связки с чем-то еще. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)