Все потоки
Поиск
Написать публикацию
Обновить
136.25

Delphi *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Поддержка MultiTouch + Gestures в Delphi XE4

Время на прочтение38 мин
Количество просмотров16K


Как-то незаметно для меня прошли все эти новые веяния в виде активных мониторов, на которые пользователь может тыкать пальцами. И знать бы о них не знал, кабы месяца три назад начальство не приобрело себе ноутбук, который можно порвать на две части (экран отдельно, клавиатура отдельно), причем не Surface какой-то, пропиаренный MS, а уже самый проходной у пользователей – от ASUS, за гораздо меньшие деньги (относительно).
Да и закуплен был данный девайс не просто так – задача выросла оттуда, откуда и не ждали.

Де юре: мы проводим огромное количество семинаров в месяц, и вот именно на них, нашим лекторам начали демонстрировать несовместимость нашего ПО с этим пресловутым тачем.

Де факто: на почту саппорта начали сыпаться гневные письма пользователей плана – «я два раза тапнула, а оно не тапнулось, может не так тапнула?»
А начальство все это скрупулезно отслеживало на своем «порватом» ноутбуке и готовило ТЗ.

И вот настал тот день. Мне на рабочий стол был воздвигнут третий монитор, 23 дюйма от LG (с поддержкой Touch ввода аж 10 пальцами) и поставлена задача – это должно заработать в течении трех дней!

А работаю то я в XE4 – беда.
Читать дальше →

Delphi: Быстрое (де)кодирование JPEG с помощью libjpeg-turbo

Время на прочтение11 мин
Количество просмотров16K
Как-то раз, профилируя библиотеку для удаленного наблюдения за рабочим столом, мной было обнаружено что куча ресурсов и времени занимает кодирование/декодирование JPEG. Изучив по ускорению этой процедуры сторонние решения, было решено использовать libjpeg-turbo.

Под катом много кода на Delphi и описаны подводные камни использования библиотеки

Читать дальше →

По мотивам GUIRunner

Время на прочтение3 мин
Количество просмотров5K
Часть 1.
Часть 2.
Часть 3.

Сегодня дописал пост о том, как мы решили написать свой GUIRunner для FireMonkey. В комментарии к посту в одной из соцсетей Алексей Тимохин обратил мое внимание на другой известный фреймворк для тестирования — DUnitX.
Я пытался найти альтернативу, использовать консольный вариант, но Александр был неумолим. Когда же зайдя в репозиторий я увидел готовый GUIRunner под FireMonkey, совсем поник.

Однако.
Читать дальше →

MindStream. Как мы пишем ПО под FireMonkey. Часть 3. DUnit + FireMonkey

Время на прочтение10 мин
Количество просмотров9.5K
Часть 1.
Часть 2.

Здравствуйте.

В этой статье я хочу познакомить читателей с процессом переноса VCL кода в FireMonkey. В стандартной поставке Delphi, начиная по-моему с версии 2009, проект DUnit идёт из коробки.

Однако писался он в далекие времена VCL. И хотя и позволяет тестировать код написанный для FireMonkey (Благодаря консольному выводу), но у него нет «няшного» GUIRunner'a, к которому многие из нас привыкли, ведь в нём очень быстро и легко можно «убрать» те тесты которые мы не хотим запускать «именно сейчас».

image


Поехали

Прочитали Хабр по почте. Результаты

Время на прочтение2 мин
Количество просмотров15K
1 октября была написана статья о службе, которая была сделана для работы с постами Хабра. Служба скачивала новые названия постов и по запросу высылала готовый скачанный пост на почту.
Сегодня я службу остановил. Всех активных подписчиков отключил.
По катом делюсь информацией в цифрах и результах работы службы.
Читать дальше →

Что будет если смешать орехи, Arduino, OpenCV и Delphi. Часть 2

Время на прочтение4 мин
Количество просмотров14K
В первой части я пытался отбирать орехи без OpenCV, и был не прав.
Программируя на Делфи еще с института, начиная с версии 2, хоть и будучи довольно близко знакомым с другими ЯП, я все же начал искать заголовки именно для Делфи. И нашел.
Скомпилировав пример EdgeDetect, и увидев результаты, я осознал, что OpenCV инструмент действительно мощный, простой и быстрый. Спасибо хорошим людям за паскалевые заголовочные файлы к C интерфейсу этой замечательной библиотеки, ведь они дали мне возможность писать в среде привычного для меня RAD. Определившись с ЯП, я начал разрабатывать ПО с нуля, в данной статье описаны мои победы и злоключения, и прошу, не судите больно, это только вторая моя статья на хабре.
Читать дальше →

Сжатие DFM ресурсов в Delphi программах

Время на прочтение8 мин
Количество просмотров13K
Захотелось мне как-то попробовать сжать ресурсы dfm форм своего приложения, плюсы довольно спорные (сложные формы могут содержать много графических ресурсов которые в dfm файле хранятся как буфер с bmp, который можно неплохо сжать, так же защита от просмотра и редактирования ресурсов форм), но ведь есть несколько программ позволяющих такое делать, значит кому-то нужно.

Напишем приложение DFMCompressor, которое будет извлекать dfm ресурсы из exe файла, сжимать их и записывать обратно заменяя оригиналы.
Читать дальше →

Читаем Хабр по почте

Время на прочтение2 мин
Количество просмотров10K
image
Все читают Хабр. И я в том числе. Но однажды доступ к нему был закрыт прокси. В связи с этим было решено сделать такое, что позволяло бы читать статьи Хабра.
Результатом стала служба, запущенная на домашнем компьютере, которая проверяет новые статьи на Хабре, отправляет заголовки статей на почту, а также по запросу присылает сами статьи. Общение со службой только по почте. Подробнее под катом.
Читать дальше →

Что будет если смешать орехи, Arduino, OpenCV и Delphi. Часть 1

Время на прочтение4 мин
Количество просмотров19K
Привет, хабровчанин.

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

Удосужилось мне счастливо жить в небольшом городке в центральной Украине. Причины сего мне не известны, но каждую осень колхозный рынок превращается в биржу по торговле грецким орехом, его везут со всей округи. Все покупают и продают как одетый так и раздетый орех. Ажиотаж затрагивает как профессиональных перекупщиков, так и пенсионеров, мне при этом почему-то вспоминаются голландские тюльпаны. Но история началась летом.

С моим кумом мы владеем небольшим компьютерным магазинчиком, где он продает, а я занимаюсь мелким ремонтом и программированием. В очередной раз приехав с недельного отдыха с палатками на берегу реки, загоревший и нарыбачившийся вдоволь я сидел и что-то паял в своем кабинете, который я лаского зову «склеп» по причине обилия мертвого железа и постоянной температуры окружающей среды.

— К тебе пришли.

Я вышел из склепа и познакомился с парнем немного старше меня по имени Андрей. На ладони у него были половинки ядер грецкого ореха, одно темно-коричневое, почти черное, другое — светлое, практически бежевое. Андрей предложил работу, нужно было программно отделять первые от вторых. Это была первая ошибка. Нет, не подумайте плохо, ошибка не в том, что он связался со мной, а в том что принес мне настолько разные примеры. Мне была дана полная свобода в плане платформ и реализаций. Хоть и было предложено использовать камеры, я их отбросил, ввиду, как мне тогда показалось, сложности реализации и ресурсоемкости такого подхода. В качестве сенсора был выбран датчик tcs3200 — преобразователь цвет->частота, такие часто используют в DIY проектах по сортировке чего-нибудь цветного. По даташиту датчик имел хорошие характеристики: имел по 16 фотодиодов каждого цвета(R/G/B) плюс отдельно 16 фотодиодов для белого цвета. Глубина чувствительности каждого канала была заметно выше 8 бит на канал, которые предлагает бытовая вебкамера. Первая версия устройства представляла собой картонную трубу от пищевой фольги с вырезанным окошком для датчика и подсветки. Данные с максимально-возможной скоростью передавались в виндовое приложение. Получалось около 600 замеров в секунду.
Читать дальше →

Видеотрансляция запуска RAD Studio XE7

Время на прочтение1 мин
Количество просмотров6.3K
Уважаемые разработчики!

Мы уже анонсировали Запуск RAD Studio XE7, который пройдет в Москве 16 сентября.

Для жителей других регионов мы будем вести он-лайн трансляцию запуска. Присоединяйтесь 16 сентября в 10.00 MCK на сайте delphitour.ru.

Впервые на запуск новой версии — RAD Studio XE7 мы пригласили реальных разработчиков и экспертов по мобильной разработке из компании Samsung.
Вы будете удивлены большому количеству новых возможностей, главной из которых является создание универсальных интерфейсов для всех платформ.
Мы добавили много живых демонстраций и мастер классов по созданию приложений различными интерфейсами сразу под все устройства, с учетом их личных характеристик.
Мы также поделимся секретами как построить органичную мобильную среду в компании.

Будет интересно, не пропустите!
Читать дальше →

Quad-engine. Свой 2D-движок. Когда приперло со всех сторон

Время на прочтение5 мин
Количество просмотров32K

Предисловие.


Было начало 2010 года, когда я расстроился при просмотре очередного фреймворка с поддержкой Delphi. В тот момент я искал замену уже сильно устаревшему и заброшенному PowerDraw. Как говорится, тоже самое, только с перламутровыми пуговицами. Пересмотрев всё, что было из 2Д, я так и не нашел искомого. То не было шейдеров, то черезчур нагроможденный с точки зрения кода, то вообще какой-то убогий. А душа просила простоты использования и шейдеров.

Поэтому я сел, и начал изобретать свой велосипед. Первое собранное приложение выглядело, конечно, не сильно впечатляюще:



Под катом прилично картинок.
Читать дальше →

MindStream. Как мы пишем ПО под FireMonkey. Часть 2

Время на прочтение12 мин
Количество просмотров7.2K
Часть 1.

Здравствуйте.

В этой статье я продолжу рассказ о том, как мы пишем под FireMonkey. Будет добавлено 2 интересных объекта. Оба напомнят нам о векторной алгебре и тригонометрии. Также в посте будут показаны приемы из ООП, которыми мы пользуемся.

Читать дальше →

Мероприятия по предварительному обзору RAD Studio XE7

Время на прочтение1 мин
Количество просмотров5.1K


Уважаемые друзья,

У нас для вас хорошие новости. Мы открываем регистрацию на мероприятия на которых мы поделимся с вами секретами о новых возможностях RAD Studio XE7.

В этом году мы стартуем с Москвы, где вы сможете нас увидеть нас 16 сентября, далее переместимся в Астану – 18 сентября и завершение тура будет в Екатеринбурге 23 сентября.
В этом году мы пригласили не только экспертов по продуктам, но и разработчиков, непосредственно принимающих участие в разработке версии XE7 из R&D центра, которые будут делать демонстрации продуктов и отвечать на вопросы «из первых рук». Нас также поддержат эксперты по корпоративной мобильности из компании Samsung, которые поделятся не только экспертизой по переходу на корпоративную мобильность, но и примут участие в розыгрыше призов.

В ходе мероприятия спикеры расскажут как:

• Разрабатывать кроссплатформенные приложения с помощью нового дизайнера единого интерфейса;
• Улучшать производительность настольных и мобильных приложений с помощью библиотеки параллельных вычислений, используя преимущества многоядерных процессоров;
• Как обеспечить использование мобильной инфраструктуры стандартными сервисами
Читать дальше →

Ближайшие события

Ввод дробных значений без смены раскладки

Время на прочтение3 мин
Количество просмотров15K
Как часто вам приходится вводить в интерфейс какой-либо программы/web-сервиса дробные значения? Если часто, то, вероятно, вы сталкивались с неадекватным поведением таких полей. Я, например, довольно регулярно бьюсь лбом об абсолютно тупые формы. Хотите знать, почему ввод дробных значений может довести до белого каления, и что с этим делать? Добро пожаловать по кат.
Читать дальше →

DBLookupComboBox в FireMonkey, или костыль для рыжей обезьяны

Время на прочтение5 мин
Количество просмотров7.2K
Доброго дня всем!

Не так давно столкнулся с необходимостью работы с базой данных из FMX-приложения.

Те, кто уже «щупал» Delphi XE, должны быть в курсе, про отсутствие в FMX таких любимых VCL как:
  • TDBGrid
  • TDBLoockupComboBox


И если проблема с DBGrid решается вполне интуитивно, визуальным биндингом, то с TDBLoockupComboBox не всё так однозначно.
Во всяком случае гугл не смог мне подсказать ничего толкового.

Проблему я решил; хочу поделиться решением с сообществом, возможно, кому-то пригодится.
Читать дальше →

MindStream. Как мы пишем ПО под FireMonkey

Время на прочтение20 мин
Количество просмотров15K
Месяц назад мы решили написать кросс-платформенное приложение, используя FireMonkey. В качестве направления выбрали рисование графических примитивов, с возможностью сохранения и восстановления данных.

Процесс написания приложения мы договорились подробно описывать на Хабре.

В статьях будет показано на практике использования различных техник, таких как: Dependency Injection, фабричный метод, использование контекстов, использование контроллеров и т.д. В ближайшем будущем планируется прикрутить туда тесты Dunit. DUnit’a в данный момент нет для FMX, так что придётся что-то придумывать самим.

Начнем мы с рабочего прототипа который к моменту окончания статьи приобретет такой вид:


Читать дальше →

«Конфиденциально» — маркетинговый ход или реализованная опция? Проект Sphere Live (beta)

Время на прочтение9 мин
Количество просмотров5.2K

Здравствуйте, дорогие Хабровчане!

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

Сразу оговоримся, в этом посте не будут освещаться проблемы разработки, тем более, что об этом вы сможете узнать из интервью руководителя отдела разработки нашей компании Алексея Глызина, которое у него взял известный среди разработчиков на Delphi блогер — Александр Божко. Мы познакомим вас с результатом, которого добились, используя Delphi XE6. Итак, начнем.

Под катом вас ждет подробное описание функционала, анонс реализованных в коде возможностей, GUI, полезные фичи, планы на будущее и многое другое…
ВНИМАНИЕ! Много скриншотов!..
Читать дальше →

Как мы «дрессировали огненную обезьяну» или наш опыт работы с FMX

Время на прочтение5 мин
Количество просмотров15K


Доброго времени суток, уважаемые Хабрапользователи!

Мы — компания «Сфера системс», и сегодня мы открываем корпоративный блог на Хабре, в котором хотим познакомить вас с нашим проектом «Sphere Live». И, хотя наш проект пока находится в стадии бета тестирования, сейчас уже можно с уверенностью говорить о том, что он состоялся.

Мы планируем поделиться своим опытом создания стартапа, рассказать как об успешных решениях, так и об ошибках. И, конечно же, нам бы хотелось получить ответную реакцию. Мы отнюдь не претендуем на «историю успеха», по крайней мере пока, тем не менее, искренне надеемся, что наш опыт разработки окажется интересным нашим читателям, а их отзывы будут полезны для нас.

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

Проект «Sphere Live» — это мультиплатформенная система организации видеоконференцсвязи с неограниченным количеством участников в форме симметричных и ассиметричных лекций с интегрированной биллинговой системой, функциями файлообмена и облачного хранилища, а также защитой информации о пользователе (переписка, отправленные и переданные файлы, видео- и аудиообщение).

Читать дальше →

Вертикальное выравнивание кода + немного Punto

Время на прочтение2 мин
Количество просмотров21K
Приветствую. Поговорим о вертикальном выравнивании кода?

Итак, вдохновившись недавней статьей я понял как надо. Полностью автоматическое выравнивание + парсинг синтаксиса вещь конечно удобная, но нет. И у меня родилась идея. Мы просто даем программисту самому в каждом конкретном случае определить, по каким символам и в каких местах выравнивать код.

Работает это в любом редакторе и с любым текстом. Как-то так:



Сразу забрать приложение можно тут: sourceforge.net/projects/tnice/files
(выделяем текст, жмем Ctrl+Shift+D, пишем символы выравнивания, жмем Ctrl+Enter)
А подробный мануал и принцип работы под катом.
Читать дальше →

Разработка и тестирование модуля АСКУЭ

Время на прочтение15 мин
Количество просмотров14K


АСКУЭ – Автоматизированные Системы Контроля и Учета Энергоресурсов. В задачи подобных систем входит сбор данных с приборов учета энергоресурсов (газ, вода, отопление, электричество) и предоставление этих данных в удобном для анализа и контроля виде.

Так как такие системы вынуждены иметь дело с множеством самых различных устройств и контроллеров, чаще всего они построены по модульному принципу. Не так давно меня попросили написать модуль для подобной системы, осуществляющий связь с одним из приборов учета (счетчик электрической энергии трехфазный электронный ЦЭ2753).

По ходу повествования Вам будут встречаться выделенные подобным образом комментарии. Единственная их цель – чтобы Вы не заснули в процессе знакомства со статьей.


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

Вклад авторов