уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

На сегодняшний день складывается такое впечатление, что старая добрая VCL в Delphi позабыта, позаброшена и все силы Embarcadero направлены на доработку/переработку платформы FireMonkey. Оно, в принципе, и понятно — поддержка мобильных платформ, Mac OS опять же…для поддержки всего этого разнообразия операционных систем требуется много сил, времени и денег и, кто бы чего не говорил, но FireMonkey в этом случае подходит как нельзя кстати. Другой момент — качество платформы и её удобство. Наверное, только самый ленивый не сталкивался при работе с FireMonkey с разного рода ошибками, «тормозами» и т.д. В результате чего многие разработчики на форумах и в блогах откровенно недоумевали:

Жирик_компилирует_программу

Одни проблемы платформы решаются оперативно, другие — долго и упорно «висят». Но тем не менее трудно не признать того факта, что FireMonkey развивается, постоянно улучшается, обрастает новыми возможностями, компонентами и т.д. И это обстоятельство всё-таки вселяет надежду на то, что когда-нибудь FireMonkey сравняется по качеству и удобству с VCL. Но речь сегодня не совсем об этом

Одной из проблем разработки проекта с FireMonkey является не столько скорость работы программы (по крайней мере на старте работы), сколько скорость разработки вообще. В FireMonkey все по-другому — по другому организована работа с компонентами, по другому работают стили, по другому реализован механизм Drag&Drop. И даже имея более-менее целостное представление о том как использовать возможности FireMonkey перед началом работы даже над самой мелкой программкой задаешься вопросом: а не быстрее ли будет всё то же самое собрать с использованием VCL? И, как бы это не прискорбно прозвучало, в 99% случаев выбор остается за VCL.

А буквально вчера произошел случай, когда разработка программки с FireMonkey оказалась на много быстрее, чем с VCL.

С чего все началось: потребовалась простенькая программка  для работы с реестром Windows 7. Суть программки: запрет запуска определенных программ пользователем…ну, например, онлайн-игрушек. Портрет пользователя программы в трех словах: вообще не знает компьютер. То есть, если бы я накидал на форму кнопок, создал бы парочку диалоговых окон с подробнейшим описанием того, что и как надо нажать, чтобы программа сработала как надо, то даже в этом случае пользователь врядли бы прочитал хоть что-то и сделал все правильно…ну не лежит у человека душа к компьютерам :) Пришлось импровизировать.

И тут как раз-таки «необычность» FireMonkey оказалась кстати. Первое, что я решил — задействовать Drag&Drop. Про работу с Drag&Drop в FireMonkey я рассказывал и здесь очень кстати мне пригодился объект:

TDragObject = record
    Source: TObject;
    Files: array of string;
    Data: TValue;
  end;

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

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

В итоге получился вот такой незамысловатый интерфейсик программы:

interface

Запустил программку, передвинул один переключатель, набросал exe-шников и всё. Никаких тебе «Применить», «Ок» и пр. Надо снять ограничения на запуск — передвинул переключатель в другую сторону и все встало на свои места как и было раньше. Дополнительно бросил на форму три чекбокса для запрета запуска командной строки, менеджера задач и редактора реестра…но это уже вообще для «продвинутых» :).

Итог разработки: на все про все ушло чуть более часа из которого минут 15 читал инфу по работе с реестром (где какие ключики добавить, какие значения присвоить и т.д.)

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

0 0 голоса
Рейтинг статьи
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
Подписаться
Уведомить о
3 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
k0de
k0de
08/09/2013 18:51

Согласен. Я сам уже не первый раз пытаюсь написать на FMX приложение. Даже не раз пытался перегнать уже имеющийся проект на VCL в FMX. И каждый раз на каком то этапе возвращался к VCL (в основном из за шрифтов, которые плохо рендиряться не качественно). И совсем недавно делал проект (чисто для себя, для повышения экспы) по работе с сайтом по распознаванию лиц. Начал делать на FMX. И все пошло легко. Прозрачность формы, layout’ы содержащие в себе другие компоненты и т.д. все это сделало работу приятней. Хотя столкнулся с проблемой того как сделать снимок экрана. Но решение было найдено. В целом,… Подробнее »

guest
guest
10/09/2013 12:11

Ну раз набросал программку, мог бы и сорцами поделиться… Начинающим, катаким как я, пригодилось бы для изучения FM.