2013-05-09 2 views
0

Я создаю массив кнопок в Firemonkey, и каждая из кнопок создается путем загрузки стиля из ресурса.Delphi Firemonkey TLayout mousedown not firing

FButtons[r,c] := TLayout(TStyleManager.LoadFromResource(HInstance, BUTTON_STYLE, RT_RCDATA)); 
FButtons[r,c].Parent := Self; 
FButtons[r,c].Stored := false; 
FButtons[r,c].HitTest := true; 
FButtons[r,c].OnMouseDown := OnButtonMouseDown; 

Содержимое ресурса просто скопировано из TButton (темный стиль).

Проблема, с которой я сталкиваюсь, заключается в том, что кнопка не оживляет нажатого состояния. Поэтому я пытаюсь захватить событие OnMouseDown, чтобы запустить анимацию «IsPressed», но OnMouseDown никогда не запускается. Любые идеи, почему OnMouseDown не происходит?

Заранее спасибо. Martin

ответ

0

не знаю почему, но установка

Locked := true 

фиксированная моя проблема.

0

Если вы используете пользовательский стиль FM, тогда убедитесь, что свойство HitTest элементов стиля (контейнеры, вероятно) установлено в False. Если HitTest True, сам стиль «проглотит» событие.

Вы можете найти более подробную информацию здесь:

+0

Да, я удостоверился, что HitTest не соответствует ни одному нисходящему объекту. – Martin

+0

Без загрузки стиль работает OnMouseDown? –