Программирование для Android и работа с датчиками в среде Delphi 11 - страница 4
На примере Кнопки видны возможности визуального отображения компонентов: изменение цвета компонента и текста, размера компонента и шрифта, размытие (тень) и добавление иконки (через ImageListEditor, при этом большая и расположенная с краю иконка неприглядна, увеличивает размер кнопки и практически для смартфона мало пригодна).
Другой пример: Окошко (Edit): если в нем нет текста, то компонент практически не виден (как на рисунке 13 сразу под ImageList), поэтому приходится сбрасывать на нее TInnerGlowEffect, который проявляется как уже ясно видимое подчеркивание.
Рис. 13. Стили компонентов и добавление иконки через ImageList Editor.
Общие свойства компонентов видны из рисунка выше. Из множества свойств нужно менять лишь некоторые, остальные желательно не трогать.
Для компонентов обычно доступны:
– изменение размеров (и autoSize для Label),
– изменение цвета, в том числе градиентная заливка,
– изменение размера, цвета и типа шрифта (часто центрируют его, изначально расположен с краю – leading).
– видимость и доступность (Visible и Enable = true/false), причем иногда «недоступная» кнопка продолжает работать,
– наиболее важное свойство: Align – выравнивание; в Android на смартфоне важно, чтобы компоненты не «ехали» на разных экранах. Обычно используют несколько панелей вплотную и выравнивание Top и Bottom, а между ними – Client. Часто используется Scale, для разных экранов.
– Также для текстовых компонентов имеется свойство WordWrap (установите как true) для автоматического переноса на следующую строку не умещающегося текста;
– для просмотра не умещающегося на компоненте текста предусмотрено свойство ShowScrollBars и EnabledScroll = true, а также соответствующий компонент для скроллинга, что, впрочем, иногда не работает, а текст видимый на экране не помещается на экране смартфона (поэтому нужно чаще просматривать текущий результат программирования на реальном подключенном устройстве, а не на виртуальных моделях);
– добавление иконки (через ImageList Editor),
– возможность фокусируемости на данный компонент и «Read оnly» – только для чтения,
– стиль (часто приходится изменять установленный для всей формы стиль на подходящий для данного компонента),
– свойства Position (X и Y) от края контейнера (Панели, Формы) и отступы Margin – справ, слева, сверху и снизу,
– всем компонентам доступны вращение и анимации.
Свойство Sender: TObject («Отправитель») присутствует у всех компонентов, хотя редко используется. Но бывает полезно, например, узнать от какого типа источника происходит событие:
if (Sender is TButton) then ShowMassage («Click from Button»);
Или для разного действия при получении события OnClick от разных источников:
if Sender = Button1 then …… else ………..
Или для получения одного результата для разных компонентов: в Events на событие OnClick (или OnChange и т.п.) из выпадающего списка для нескольких компонентов выбрать нужный: например, Button1Click, с выполняемым везде кодом.
Или: Button2.OnClick (Sender); для Button1 – выполнит Button2.
Например, для приложения «ШкольныйКалькулятор» за счет свойства Sender можно значительно сократить код. Для функции power