Я работаю над приложением Firemonkey с основной формой, в которой много элементов управления.Я хочу создать еще несколько элементов управления и отправить их обратно, используя SendToBack
.По какой-то причине это не работает, как ожидалось.Элементы управления не отправляются в полный возврат, они не доходят до 1 элемента управления.
Вот пример настройки:
- Создайте новую TForm.
- Поместите на него 3 кнопки, накладывающиеся друг на друга (Button1, Button2, Button3).
- Во время выполнения кнопка
Button3.SendToBack
- возвращает кнопку назад, но только на 1 позицию.Button1 по-прежнему остается самым задним.
Проверка исходного кода TForm показывает, что SendToBack
вызывает SendChildToBack
, что определяет заднее местоположение как:
function TCommonCustomForm.GetBackIndex: Integer;
begin
Result := 1;
end;
, не должно ли оно быть 0?
Вопросы:
- Почему SendToBack отправляет элементы управления в «последнюю, но одну» позицию вместо крайней?Есть ли особая причина, по которой GetBackIndex возвращает 1?
- Как отправить назад элементы управления?Учитывая, что в моей форме много элементов управления, отправка всего, кроме необходимых элементов управления с
BringToFront
, была бы нежелательной.