Обновить
3.2

Delphi *

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

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

Lazarus как он есть

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

Так в комментариях к недавней теме «Lazarus 1.0 увидел свет!» были высказаны некоторые неверные утверждения, а также задан ряд вопросов оставшихся без ответов. Являясь разработчиком Lazarus и FPC уже довольно продолжительное время, я могу и хочу дать ответ на большинство связанных с этими продуктами вопросов и развеять некоторые неверные предположения.

Утверждение: Размер исполняемых файлов оставляет желать лучшего. Виноват компилятор, компоновщик и др.
Читать дальше →

Куда стоило бы развиваться Delphi вместо того, куда оно развивается сейчас

Время на прочтение3 мин
Охват и читатели33K


Вот что нам, разработчикам, действительно нужно? Я тут как раз сегодня задумался — накидал несколько букв, сначала комментом, а потом решил, что оно на пост тянет:

Во-первых, меня ужасно раздражает, что всю разработку под винды уже который раз пытаются пересадить подальше уровнем от железа. Побольше толстых прокладок напихать между прикладным софтом и процессором, между пригладным софтом и ОС. ИМХО, ближе к native коду нужно стремиться, ближе к железу, ближе к ОС! К любому железу, к любой ОС. Нужно развивать Object Pascal как альтернативу C++, отличающуюся развитыми средствами ООП, синтаксическим сахаром, за который мы Паскаль любим, мощным IDE и родным быстрым однопроходным компилятором.

Кроме того, нужны развитые возможности интеграции со сторонними библиотеками. Этого, по сравнению с C, очень не хватает. Вокруг множество библиотек, всякие интерпретаторы чего только не умеют, а для Delphi библиотеки нынче фиг найдёшь, и в итоге с известным трудом сам делаешь. А потом переделываешь при обновлении API. Для этого — генераторы тонких обёрток нужны. У Лазаруса есть поделка под названием h2pas, но её ж развивать нужно, а то и интегрировать! Занялись бы они, а?.. А ещё лучше — попробовать осмыслить и сделать прозрачное использование в одном проекте модулей на разных языках — в частности, прямое подключение h-файлов библиотек. Уверен, что линкер можно сделать так, что бы он с этим справлялся.
Читать дальше →

Как завести свой Web-сервис скриншотов — версия 1.1

Время на прочтение1 мин
Охват и читатели7.5K
В конце прошлого года мне для целей поддержки пользователей Windows-программ потребовалось организовать Web-сервис скриншотов с клиентской программой, позволяющей выделять для размещения нужный прямоугольный фрагмент экрана. Сторонние сервисы вроде Gyazo удовлетворять перестали ввиду чрезмерного объёма рекламы и невозможности своими силами контролировать мероприятия по обеспечению надёжности вроде резервного копирования, поэтому были написаны свои сервис скриншотов и клиентская программа.
Читать дальше →

Экосистема Delphi

Время на прочтение3 мин
Охват и читатели4.7K

Декомпозиция


Чтобы правильно проанализировать текущее состояние практически любой IT-технологии нужно представлять её экосистему. Функциональное наполнение релиза, нефункциональные показатели качества — все они не имеют некой «абстрактной» ценности, а представляют собой результат обмена веществ в этой экосистеме.

Грубыми мазками картина выглядит следующим образом. Можно выделить 4 основных компонента:
  • Embarcadero как производитель
  • Технологические партнёры
  • Сообщество (+IT-эксперты)
  • Основная группа потребителей — прикладные программисты
Читать дальше →

Перед XE3

Время на прочтение3 мин
Охват и читатели5K

Delphi, угол зрения


В последнее время участились случаи генерации всяких слухов, сливов и оползней, которые, как ни странно, очень приветствуются. Такие феномены обладают внутренней особенностью к распространению в самоподдерживающемся режиме или, кому нравится, переходу в режим автоколебаний. Тенденция к негативной интерпретации информационно-тематических выплесков требует правильной постановки штатива телескопа, т.к. даже антивирусу понятно, что сфокусироваться даже на неподвижном объекте, стоя в гамаке, натянутом между мачтами парусника в открытом море, очень сложно. Тем более что наш объект достаточно подвижен, а его траектория не всегда представляет собой идеальную прямую, что характерно для развития любой IT-технологии. Но сейчас мы поговорим о текущем состоянии продукта под названием Delphi. А для этого нужно посмотреть на происходящее чуть-чуть по-другому (=максимально непредвзято).
Читать дальше →

SQLite и UNICODE

Время на прочтение10 мин
Охват и читатели64K
Первая часть — вводная.
Вторая часть — быстрый старт.
Третья часть — особенности.

Несмотря на то, что эта тема затрагивалась на Хабре и раньше, некоторые ключевые вещи не прозвучали. В этой статье делается попытка «закрыть тему». Замечания по дополнению/исправлению приветствуются.

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

RAD Studio XE3 — изменения в EULA?

Время на прочтение2 мин
Охват и читатели4K
Сегодня на одном из азиатских сайтов появился текст, якобы представляющий собой конфиденциальное письмо компании Embarcadero Technology своим партнёрам по поводу предстоящего введения ограничений в EULA. Привожу ниже перевод письма, а от себя добавлю, что, если сказанное там окажется правдой, то вряд ли буду апгрейдиться до XE3 — из принципа. Итак:
Читать дальше →

Маленькие хитрости: автоматическое восстановление вида указателя курсора

Время на прочтение2 мин
Охват и читатели3.7K
Добрый день, коллеги!

Те из вас, кто пишет клиентские приложения, наверняка сталкивались с необходимостью менять вид курсора, чтобы показать пользователю, что в данный момент приложение выполняет какую-то обработку данных (длительную или не очень) или выполняет запрос к базе. Хочу поделиться маленькой хитростью, как упростить себе жизнь. Подробности под катом.
Читать дальше →

MVC-подход к реализации пользовательского интерфейса в Delphi. Часть 3. Объекты

Время на прочтение8 мин
Охват и читатели18K

В предыдущих частях статьи (1, 2) я показал, каким образом можно организовать работу с внутренними данными приложения и пользовательским интерфейсом через одну точку входа — модель. Изменения модели автоматически отражались в пользовательском интерфейсе. При этом для упрощения в качестве модели я использовал простые property класса формы, setter которых может привести GUI интерфейс к текущему состоянию модели. В данной части статья я покажу, как интерфейс может реагировать на изменения самих объектов внутри приложения.
Читать дальше →

MVC-подход к разработке пользовательских интерфейсов в Delphi. Часть 2. Списки

Время на прочтение8 мин
Охват и читатели15K


Предыдущая статья была посвящена всего одной галочке. Пора переходить к чему-то чуть более серьезному. Сегодняшняя тема — представление списков и связь GUI-списков с внутренними данными. Статья предназначена для Delphi-разработчиков.
Читать дальше →

MVC-подход к разработке пользовательских интерфейсов в Delphi. Часть 1. Галочка

Время на прочтение7 мин
Охват и читатели30K

Не буду писать красивых предисловий, потому что статья не развлекательная, а скорее техническая. В ней я хочу обратиться к приемам программирования пользовательского интерфейса классических desktop-приложений Delphi в MVC-стиле. Это вводная статья из последующей серии.
Тех немногих, кто еще пользуется этой средой разработки, прошу под кат.
Читать дальше →

Создаем Splash Screen на Delphi

Время на прочтение4 мин
Охват и читатели20K
image
Если при загрузке программы, показывается Splash Screen (это небольшое окно с картинкой), то к таким программам пользователи относятся лучше, чем программам, при запуске которых несколько секунд ничего не происходит.
В интернете есть много примеров изготовления Splash Screen-а в Delphi, однако обычно это квадратная форма с натянутой на ней картинкой.
Но у многих программ это не квадратная форма, а красивое окно со сглаженными краями.
Я пытался сделать такое окно с помощью регионов, но края были неровные и смотрелись неказисто.
Выходом стали «Слоистые окна» (LayeredWindow).
Читать дальше →

Долгожданное обновление компонента Virtual Treeview V5.0.0 RC1

Время на прочтение1 мин
Охват и читатели9.4K
Разные вариант отображения содержимого в Virtual TreeviewМногие Delphi разработчики знают и используют этот замечательный бесплатный компонент для вывода деревьев, списков и таблиц.
Пользователи The Bat! видят его ежедневно, просматривая списки писем.
Компонент отличается высокой скоростью работы с узлами и широкими возможностями по настройке оформления, поддерживает Unicode.

Последняя версия компонента 4.8.7 вышла в октябре 2010 года, и надежды на обновления были слабыми.
Но, все таки, обновление вышло!
Пользователи Delphi XE2 теперь будут рады, теперь можно радовать и пользователей 64-битных систем.
Читать дальше →

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

Windows Sockets, IOCP и Delphi

Время на прочтение10 мин
Охват и читатели16K

Пролог


Недавно я столкнулся с необходимостью эффективной работы с сокетами в Windows приложении. Задача типичная для нагруженного сервера. Нетипичным тут будет казаться только язык реализации — Delphi.
Я хочу описать способ массовой асинхронной работы с большим количеством сокетов с использованием I/O Completion Ports.
Читать дальше →

Библиотека OmniThreadLibrary — простая многопоточность в среде Delphi

Время на прочтение9 мин
Охват и читатели32K
Написать интересную статью на техническую тему очень сложно. Приходится балансировать между тем, чтобы не скатиться в технические дебри и тем, чтобы совсем ничего не сказать. Сегодня я попробую в общих словах (без деталей) поговорить о том, как обстоят дела с разработкой многопоточных desktop-приложений в не столь популярной на сегодняшний день, но наверняка знакомой многим российским разработчикам среде Delphi. Статья ориентирована на НЕ новичков в программировании, являющихся при этом новичками в области создания многопоточных приложений.
Читать дальше →

Использование Google Speech API для управления компьютером

Время на прочтение3 мин
Охват и читатели72K
Добрый день всем хабражителям.

На хабре уже писалось несколько статей о использовании Google Speech API, в том числе о его применении при создании Умного дома.

В этой статье я хочу рассказать как можно написать небольшую программку для голосового управления компьютером.

Кому интересно, прошу под кат.
Читать дальше →

Работа с объектами СУБД Caché на примере Delphi

Время на прочтение17 мин
Охват и читатели11K

Несмотря на перманентные похороны Delphi, эта платформа построения Desktop приложений живёт и здравствует, а со сменой владельца даже обретает второе дыхание и продолжает оставаться основным инструментом для тысяч разработчиков во всём мире.
Как и с любыми другими СУБД, Delphi прекрасно взаимодействует с СУБД Caché.

Из Delphi можно подключиться к Caché, используя следующие интерфейсы:


В данной статье будут рассмотрены примеры использования объектного интерфейса при работе с СУБД Caché.
Читать дальше →

WebBrowser, заполнение поля типа file на Delphi

Время на прочтение5 мин
Охват и читатели3.8K
При работе с компонентом WebBrowser часто возникает необходимость заполнять поля форм на сайте. С обычными полями формы никаких проблем нету, для их заполнения существуют стандартные методы, а вот поле с типом file браузер упорно отказывается заполнять. Причина этому — защита пользователей. Если бы браузер позволил свободно подставлять в это поле путь к файлу на компьютере пользователя, тогда с помощью простенького JavaScript встроенного в страницу сайта можно бы было легко увести любой файл.

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

Домашняя электронная библиотека: MyHomeLib + FBD

Время на прочтение6 мин
Охват и читатели125K
Думаю, практически каждый любитель электронного чтения сталкивался с ситуацией, когда объем скачанных из сети книг увеличивается настолько, что найти в папке с ними нужную книгу становится сложнее, чем скачать ее заново. В этом случае многие пытаются систематизировать коллекцию, некоторые оставляют все как есть и продолжают скачивать все подряд в надежде когда–нибудь привести все в порядок, другие же просто перестают скачивать книги в надежде на то, что при необходимости все нужное найдется в интернете.

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

Сохранение истории изменений файлов

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

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

Такая программа была написана мною 2 года назад. Она не раз спасала мои проекты от разных случайностей, но вот совсем недавно я внес в нее несколько изменений, и сейчас презентую ее Вам.
Читать дальше →

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