Delphi: потеря фокуса от родителя при нажатии на дочерний элемент

У меня проблема с триггером эффекта (эффект тени). Я поставил триггер на ismouseover = true. Итак, когда я помещаю мышь на панель (родительскую), активируются тени, и все работает нормально, пока я не начну размещать некоторые кнопки внутри панели (дочерние).

Эффект теней отключается, когда мышь находится над детьми.

Итак, можно ли как-то сосредоточиться на родителях, сосредоточившись на детях?

Я пытался изменить триггер эффектов (с ismouseover на isfocused), но это не дало никаких других результатов.

Фокус клавиатуры предназначен для работы таким образом. Ваш дизайн неверен ... вам нужен еще один уровень косвенности, чтобы управлять тем, когда окно должно отображать специальные эффекты, например, проверять, есть ли фокус у каких-либо дочерних окон, а также предостережения

Dúthomhas 31.12.2022 19:26

Альтернативой может быть использование кнопок без окон, тогда они не смогут украсть фокус ввода. В противном случае рассмотрите возможность отслеживания движений мыши вручную и просто проверяйте при каждом движении, входит ли мышь в ограничивающий прямоугольник панели или выходит из нее.

Remy Lebeau 31.12.2022 22:07

Если вы выберете кнопки без окон, не забывайте, что вам все равно нужно сделать клавиатуру с графическим интерфейсом пригодной для использования.

Andreas Rejbrand 01.01.2023 00:32
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
98
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как уже говорилось, ваш дизайн неверен, тогда вы можете удалить триггер и сделать это вручную:

// show or hide shadow effect
procedure TForm2.ShowShadowEffect(AValue: boolean);
begin
  if ShadowEffect1.Enabled <> AValue then
    ShadowEffect1.Enabled := AValue;
end;

// show when enter on panel
procedure TForm2.Panel1MouseEnter(Sender: TObject);
begin
  ShowShadowEffect(True);
end;

// hide when leave the panel
procedure TForm2.Panel1MouseLeave(Sender: TObject);
begin
  ShowShadowEffect(False);
end;

// keep visible when over button
procedure TForm2.Button1MouseEnter(Sender: TObject);
begin
  ShowShadowEffect(True);
end;

Другие вопросы по теме

Похожие вопросы

Как заполнить TListView с помощью TJSONIterator.Next?
Как условно отформатировать поле ReportBuilder в полосе «Подробности» в зависимости от других полей в полосе «Подробности»?
Хранение файлов в таблице SQL Server (столбец varbinary(max)) с использованием компонента ADOQuery
Почему я получаю нарушение прав доступа при создании формы внутри класса, если экземпляр класса не является переменной, определенной в вызывающей процедуре
Вызов функции x64 DLL в Delphi
Delphi Generics: можно ли использовать типы массивов в качестве ограничений типов?
Приложение Delphi FMX для Mac не подключается к Интернету, если оно настроено для «Магазина приложений» с использованием Indy
Получить следующий результат поиска с помощью сочетания клавиш
Delphi: операция [int] в [массиве] не работает
Delphi, когда загружается модуль данных, мне нравится предотвращать подключение TFDConnector, если я по ошибке установил активацию true