Блог Александра Божко
Архивы
Рубрики

FireMonkey

К сожалению, как и большинство наших Delphi блоггеров, я страдаю хроническим цейтнотом. И чем ближе к Новому году, тем острее он ощущается.

Тем не менее, как я и обещал, продолжаю серию Firemonkey на практике. Документации по новому фреймворку пока мало, приходится разбираться, что называется “на ощупь”. Поэтому, особо ценными будут ваши комментарии. Помимо, этой рубрики, я взялся за перевод материала Марко Канту Откройте для себя FireMonkey, платформу для создания бизнес-приложений следующего поколения. На праздниках добью, ведь у меня же будут целых два дополнительных выходных! :)

Ad rem! Сегодня мы поговорим о камерах.

Как только мы создали новую FireMonkey 3D форму, мы сразу можем размещать на ней 3D объекты. И эти объекты сразу же становятся видимыми на форме. Если мы разместим, предположим цилиндр (TCylinder) в центре формы (а именно в центр формы новые компоненты постоянно и норовят попасть при размещении на форме), то мы увидим “горизонтально развернутый” цилиндр. Мы можем переместить его в пространстве или развернуть, изменив свойство RotationAngle. Но у нас имеется еще одна замечательная возможность. Мы можем посмотреть на нашу 3D фигуру с другой точки. Для этого разместим на форме компонент TCamera. Значение свойства Position.Z установим -5. Остальные свойства менять не будем. Читать далее

Компания Embarcadero Technologies и DelphiFeeds.ru объявляют новый конкурс!

К участию в конкурсе принимаются любые, не публиковавшиеся ранее, приложения или компоненты, написанные с использованием FireMonkey.

Конкурсные работы необходимо представить не позднее 30-го декабря 2011 г.

Три лучшие работы будут отмечены призами от компании Embarcadero – внешними жесткими дисками.

Страница конкурса на delphifeeds.ru.

Читать далее

Проблема, с которой столкнулся лично, и решение которой нашел тут, среди прочих полезных советов.

В формах FireMonkey отсутствуют обработчики многих полезных событий. В частности, OnKeyUp и OnKeyDown. Но, если посмотреть структуру FireMonkey класса TControl, от которого и наследуется в конечном счете форма, то в описании можно увидеть такой код: Читать далее

Screenshot - 10_12_2011 , 12_35_03 AMПри работе с 3D приложениями FireMonkey бывает достаточно сложно выделить объект (компонент)  на форме. Если меньший по размеру объект расположен “за” большим, то “поймать” его мышью фактически невозможно. Для того, что бы решить эту проблему следует использовать окноStructure” (находится в левой верхней части IDE). Хотя в более ранних версиях Delphi разработчики не часто его использовали, при разработке 3D приложений без него, пожалуй, не обойтись. Позицию объекта и угол поворота лучше задавать в Object Inspector. С помощью мыши вы сможете лишь приблизительно установить их значения. Не доверяйте представлению из одной точки. Переключившись на другую камеру, вы можете обнаружить, что два объекта друг относительно друга расположены не совсем так, как вы ожидали. Поэтому всегда старайтесь проверять абсолютные значения координат.

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

Другие статьи серии:

FireMonkey. Tips & Tricks #0
FireMonkey. Tips & Tricks #2 (Upd2)
FireMonkey. Tips & Tricks #3
FireMonkey. Tips & Tricks #4

FireMonkey– новая библиотека классов, появившаяся в Delphi и C++ Builder XE2 – имеет два принципиальных отличия от привычной VCL.

Во-первых, она позволяет создавать кроссплатформенные приложения. Во вторых, кроме обычных «плоских» приложений FireMonkey позволяет создавать 3D приложения. Именно с рассмотрения последних, я и начну данный цикл.

newProj

Насколько я понял, единственным отличием FireMonkey 3D Application от FireMonkey HD Application заключается в том, что главная форма наследуется не от класса TForm из модуля FMX.Forms, а от класса TForm3D того же модуля. Я акцентирую внимание на модуле потому, что VCL класс TForm описан в модуле Forms. Использование точки в названии модуля не является аналогией пространства имен .Net. Просто в названии модуля теперь можно использовать точку.

Создадим новый проект FireMonkey 3D Application.  Главная форма проекта будет “трехмерной”. Если мы сейчас попытаемся “положить” на такую форму обычный элемент управления, например кнопку, то отображаться не будет. Тем не менее, в окне Structure мы сможем найти эту кнопку.  И в коде так же будет присутствовать строка

Button1: TButton;

Зато если мы разместим на форме любой компонент из  группы 3D  Shapes (пусть это будет плоскость TPlane), то он сразу же отобразиться на форме. Забегая наперед скажу,  что и «классические» двумерные контролы тоже вполне можно использовать в FireMonkey 3D приложениях. Но об этом чуть позже, а пока вернемся к плоскости.

Попытавшись подвигать только что созданную плоскость Plane1 по форме, можно заметить, что данный контрол не только меняет свое местоположение, но и особым образом видоизменяет форму. При этом создается полная иллюзия объемности. Если «зацепить» объект за специально выделенные точки, то можно менять его размер (ширину, высоту и глубину) и угол поворота в пространстве. Однако с помощью мышки правильно расположить объект довольно не просто. Подобно управлению в трехмерных компьютерных играх, тут нужна определенная сноровка.

Читать далее

Как я и обещал в предыдущем посте – новая рубрика. Название говорит само за себя.

Совет 1.

Перед началом работы с FireMonkey обновите драйвера видеокарты. Понятно, что там где идет работа с графикой от этого зависит как производительность, так и корректность работы. В моем случае при запуске кода в режиме отладки у меня наблюдалась “протормозка” длительностью до минуты. В информации об устройствах не было никаких вопросительных и восклицательных знаков. Я бы и не догадался о проблеме с драйверами, если бы не родные шахматы от Microsoft, которые при запуске устроили мне на экране настоящее светопреставление. И только прочитав надпись в трее, я понял в чем дело. Я скачал и обновил драйвера с официального сайта производителя до последней версии. все стало работать как часы. Быстро и надежно.

Другие статьи серии:

FireMonkey. Tips & Tricks #1
FireMonkey. Tips & Tricks #2 (Upd2)
FireMonkey. Tips & Tricks #3
FireMonkey. Tips & Tricks #4

Среди прочих моих многочисленных недостатков имеется и любовь к футболу. Поэтому, первый свой пример с использованием FireMonkey я сделал под впечатлением от субботнего матча любимой команды. Это небольшая динамическая инсталляция, которую можно использовать, например, в хранителе экрана.

fm0_03

fm0_01

Читать далее

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика