Delphi: реальности программирования для смартфонов

Виталий Иванович Донцов

Книга посвящена практике работы мобильных приложений в среде Delphi 10.3. До настоящего времени нет практических руководств в этой области, при этом Delphi 10.3 значительно отличается от более ранних версий, Описывается последовательно создание приложений и рабочие компоненты, которые реально работают в данной среде, особенности и оптимальные режимы использования, описание основных свойств и функций, реальные примеры, что позволяет использовать книгу и новичкам.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Delphi: реальности программирования для смартфонов предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

3. Общие свойства компонентов

В Delphi 10.3 больше свойств для компонентов, чем в Delphi 7, но на практике оказывается, что наиболее важные у наиболее используемых компонентов отсутствуют, что проявляется в неприглядном виде Кнопок, невидимости Панелей и Окошек и пр. Авторы языка FireMonkey посчитали, что первичное плоское изображение компонентов нужно изменить в соответствии с необходимым дополнительными компонентами, доступными в группе Effects, в которой располагаются десятки компонентов-свойств.

На деле, практически все компоненты группы Effects предназначены для специальных эффектов типа мерцания, медленного исчезновения, жалюзи, скручивания и других мало пригодных для прикладных программ эффектов (а для разработки анимации и игр Delphi 10.3 все еще недостаточно эффективен и медленно работающий). Лишь некоторые из эффектов доступны и эффективны для обычных компонентов: TBevelEffect — эффект фаски (оптимально для Panel) и TInnerGlowEffect — внутреннее свечение, возможно: TReflectionEffect — отражение, TGlowEffect — наружное свечение, TShadowEffect — тень и TBlurEffect — размытие. Для задействования эффекта нужно перетащить компонент на форму и через Structure «подчинить» эффект визуальному компоненту управления.

Рис. 13. Стили компонентов и добавление иконки через ImageList Editor.

На примере Кнопки видны возможности визуального отображения компонентов: изменение цвета компонента и текста, размера компонента и шрифта, размытие (тень) и добавление иконки (через ImageListEditor, при этом большая и расположенная с краю иконка неприглядна, увеличивает размер кнопки и практически для смартфона не применима). Видно также, что все эти художества не спасают компонент Кнопку и достичь обычного для Delphi вида не удается. Другие типы Кнопки из других групп также ничем не лучше. Получить красивую Кнопку можно из компонента Панель, задействовав TBevelEffect для получения объемного вида, но другие эффекты не воспроизводятся, как и не меняется цвет панели; к тому же компонент Панель утратила текст на ней (!) и для получения названия новоявленной Кнопки нужно сбросить на нее компонент Label. Все это резко утяжеляет программу, замедляет ее и иногда вообще отменяет написанный под компонент код.

Другой пример: Окошко (Edit): если в нем нет текста, то компонент практически не виден (как на рисунке 13 сразу под ImageList), поэтому приходится сбрасывать на нее TInnerGlowEffect, который проявляется как уже ясно видимое подчеркивание.

Общие свойства компонентов видны из рисунка выше. Из множества свойств нужно менять лишь некоторые, остальные желательно не трогать.

Для компонентов обычно доступны:

— наиболее важное свойство: Align — выравнивание; в Android на смартфоне важно, чтобы компоненты не «ехали» на разных экранах. Из множества типов выравнивания общеприменимы: Вверх, Вниз, Вправо, Влево и Client, растягивающий компонент на весь контейнер (Панель, Форму и пр.), обычно используют несколько панелей вплотную и выравнивание Вверх и Вниз, а между ними — Client. Также имеется выравнивание Scale, впрочем, изменение размеров происходит автоматически для разных экранов.

— изменение размеров (и auto Size для Label),

— изменение цвета, в том числе градиентная заливка,

Рис. 14. Инспектор свойств компонентов.

— изменение размера, цвета и типа шрифта (часто центрируют его, так как изначально он расположен с краю — leading). Также для текстовых компонентов имеется свойство WordWrap (установите как true) для автоматического переноса на следующую строку не умещающегося текста; для просмотра не умещающегося на компоненте текста предусмотрено свойство ShowScrollBars и EnabledScroll = true, а также соответствующий компонент для скроллинга, что, впрочем, часто не работает, а текст видимый на экране при программировании, не помещается на экране смартфона (поэтому нужно часто просматривать текущий результат программирования на реальном подключенном устройстве, а не на виртуальных моделях),

— добавление иконки (через ImageList Editor), без возможности ее сдвига,

— видимость и доступность (Visible и Enable = true/false), причем иногда «недоступная» кнопка продолжает работать,

— возможность фокусируемости на данный компонент и «Read оnly»,

— стиль (обычно приходиться изменять установленный для всей формы стиль на подходящий для данного компонента),

— свойства Position (X и Y) от края контейнера (Панели, Формы) и отступы Margin — справ, слева, сверху и снизу,

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

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Delphi: реальности программирования для смартфонов предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я