30 мая 2020

Ошибка установки патча RAD Studio 10.4 через GetIt Package Manager

    RAD Studio 10.4 получила новую улучшенную версию менеджера установки дополнительных пакетов GetIt Package Manager. Одна из его новых функций – это возможность установки патчей. В день релиза RAD Studio 10.4 Sydney компания Embarcadero предоставила своим пользователям возможность протестировать работу этого механизма выпустив первое обновление RAD Studio 10.4 Sydney, в которое включила файлы, которые разработчики забыли положить в инсталлятор. Многие пользователи, которые воспользовались механизмом установки обновлений RAD Studio через GetIt Package Manager, столкнулись с ошибкой на подобии этой:

29 мая 2020

Встраиваем Microsoft Edge Embedded Browser

    В RAD Studio 10.4 разработчики добавили новый контрол - TEdgeBrowser (можете не кликать, т.к. документация по TEdgeBrowser еще не готова), который предназначен для встраивания в приложение браузера Microsoft Edge на основе Chromium. Этот контрол и альтернатива, и дополнение старого контрола TWebBrowser. Давайте посмотрим, как им пользоваться.

28 мая 2020

Судьба Delphi и C++Builder 10.4 Community Edition

    Несколько часов тому назад закончился вебинар "See What's Coming in RAD Studio 10.4" от компании Embarcadero. Почти все озвученное на нем уже известно из материалов опубликованных за последние две недели. В результате, главное впечатление на меня произвела заставка в 10 минутном перерыве, часть которой гласила "выпить чашечку кофе или чая, поговорить с детьми, покормить кота... ". Один из вопросов от слушателей был "Когда будет доступна Delphi 10.4 Community Edition?".

27 мая 2020

RAD Studio 10.4 Patch 1

    21 ноября 2019 года компания Embarcadero выпустила RAD Studio 10.3.3 Rio. В этот же день для нее было выпущено первое обновление. Сегодня, спустя несколько часов после релиза RAD Studio 10.4 Sydney, для зарегистрированных пользователей RAD Studio, Delphi, C++Builder 10.4 и All-Access стал доступен "RAD Studio 10.4 Patch 1".

26 мая 2020

Релиз RAD Studio 10.4 Sydney

    То, о чем мы говорили всю весну свершилось... Сегодня, 26 мая 2020 года, компания Embarcadero официально выпустила Delphi, C++Builder и RAD Studio 10.4 Sydney. Кроме крупных новшеств, которые были анонсированы ранее, этот релиз включает в себя более чем 1000 улучшений качества и производительности. В том числе исправление более 700 багрепортов, о которых сообщили клиенты через Quality Portal.

Полный контроль над заголовком окна программы в Delphi 10.4

    Одно из интересных новшеств Delphi 10.4 Sydney – это возможность настраивать заголовок окон программы. Теперь легко можно изменить высоту заголовка, перемесить название окна в центр заголовка, а, что еще полезнее – разместить в заголовке окна свои VCL-контролы, как это делает сама Delphi или другие программы (например, Office, Explorer, Google Chrome...).

25 мая 2020

ISO-образ DVD с RAD Studio 10.4 Sydney

    В ноябре 2019 года, за несколько дней до официального релиза Embarcadero RAD Studio 10.3.3 Rio, в сети появилась ссылка на ISO-образ Embarcadero RAD Studio 10.3.3 Rio и генератор лицензии к нему. Похоже, что история повторяется. Сегодня, 25 мая 2020 года, на варезных сайтах уже распространяется ссылка на ISO-образ DVD с RAD Studio 10.4 build 37889.9797.

22 мая 2020

RAD Studio 10.4. Оптимизация Delphi Run-Time Library

    Две среды подряд, я делал обзор доступной информации о предстоящем релизе RAD Studio 10.4 Sydney. Сегодня я вынужден нарушить свой план выпускать подобный обзор раз в неделю, т.к. есть новости, которыми мне не терпится поделиться. Они касаются оптимизации Delphi Run-Time Library и сроков релиза RAD Studio 10.4 Sydney.

20 мая 2020

RAD Studio 10.4. Новости за неделю

    В прошлую среду я сделал свой первый обзор доступной информации о предстоящем релизе RAD Studio 10.4 Sydney. Сегодня я подготовил его продолжение - краткий обзор информации о RAD Studio 10.4 Sydney, которая поступила за прошедшую неделю. Сразу скажу, что хорошая новость ждет только поклонников C++ Builder. А для разработчиков на Delphi прошлый мой обзор новостей был гораздо интереснее.

17 мая 2020

Доступ к private членам класса

    Неделю тому назад я начал писать небольшую заметку, где в коде был доступ к protected методу класса. В результате два предложения о нем вылились в отдельную статью "Доступ к protected членам класса", комментарии к которой натолкнули меня на мысль продолжить тему. Сегодня я рассмотрю несколько способов доступа к private членам класса.

13 мая 2020

RAD Studio 10.4. Что известно на сегодня

    В конце февраля 2020-го года Компания Embarcadero объявила о выпуске под кодовым названием "Denali" бета-версии RAD Studio 10.4. Бета программа уже закрыта и теперь речь уже идет о скором релизе. Недавно Embarcadero начала рассылать "pre-release sales offer" RAD Studio 10.4 Sydney. Да, путешествие по городам мира продолжается – релиз RAD Studio 10.4 получил кодовое название "Sydney". Давайте посмотрим, что, на текущий момент известно о предстоящем релизе.

10 мая 2020

Доступ к protected членам класса

 Я когда-то читал книгу еврейского писателя Шолом-Алейхема... У него там была занятная строка: "Если нельзя, но очень хочется, то можно"
 © Штирлиц "Семнадцать мгновений весны"

    Все члены класса обладают одним важным атрибутом – область видимости. Область видимости определяется специальными ключевыми словами private, protected, public, published и automated, которые называются модификаторами доступа. Сегодня я хочу сказать пару слов о модификаторе доступа protected. Члены класса, которые защищены им видны в любом классе являющимся его наследником и в том модуле, где описан класс. Эту область видимости можно сузить, если к модификатору "protected" добавить слово "strict", тогда эти члены класса увидят только его наследники.
    Зачем это надо? Например, за protected, а лучше за strict protected можно скрыть абстрактный метод. Это избавит программиста, который будет использовать класс, от желания вызвать этот метод. Но иногда авторы классов делают обычные методы protected. Самое печальное, что таким образом они скрывают много полезного. Зачем? Разумного объяснения этому я пока не слышал. Некоторые говорят, что причина в реализации одного из основных принципов ООП – инкапсуляции. Но инкапсуляция подразумевает под собой скрытие членов класса от посторонних глаз. А о какой инкапсуляции может вестись речь, если protected члены класса можно легко увидеть и использовать?

05 мая 2020

TIOBE Index снова понизил рейтинг Delphi

    Рейтинг популярности языков программирования TIOBE Index продолжает свой креатив в борьбе против Delphi. Я думал, что его автор успокоится после того, как в апрельском выпуске рейтинга по выдуманной причине исключил Delphi из топ-20. Но в мае была найдена новая причина, чтобы еще понизить рейтинг Delphi.

03 мая 2020

Первые тесты производительности FastMM 5

    По информации автора менеджер памяти FastMM производительность приложений, использующих FastMM 5-й версии выше, чем у использующих FastMM версии 4.992 в однопоточных тестах на 15%, а в многопоточных тестах на 30%. Так ли это? Давайте проверим и сравним скорость работы FastMM 4, который используется в Delphi 10.3, и FastMM 5.0.

01 мая 2020

Релиз FastMM 5

    Начиная с Delphi 2006 менеджер памяти Borland был заменен на FastMM4. С тех пор он используют в IDE RAD Studio и для приложений скомпилированных под Win32/Win64. Несколько дней тому назад автор FastMM Пьер ле Риш (Pierre le Riche) выложил на GitHub FastMM5.
    FastMM 5 полностью переписан с нуля. Новая версия одновременно сохранила сильные стороны версии 4.992 и устранила ее недостатки:

30 апреля 2020

TIOBE Index вышвырнул Delphi из топ-20

    Рейтинг популярности языков программирования TIOBE Index всегда предвзято относился к Delphi. Мартовский выпуск TIOBE Index 2020 года вышел под заголовком "Delphi вот-вот выпадет из топ-20 индекса TIOBE". И авторы рейтинга сдержали свое слово – в апреле Delphi покинул их топ-20. Но произошло это не из-за падения рейтинга Delphi, а из-за того, что Delphi и Object Pascal имеют отдельные страницы на Википедии. По мнению TIOBE - это повод разделить Delphi и Object Pascal на разные записи в индексе. В результате такой махинации Delphi теперь находится на 22-й позиции, а Object Pascal на 73-й.
    Но главная новость, это то, что в TIOBE Index топ-20 апреля 2020 года вошел язык программирования для детей Scratch. С таким же успехом в этот рейтинг можно было бы включить Minecraft.

28 апреля 2020

Варианты добавления favicon в uniGUI

    Favicon (сокр. от англ. FAVorite ICON – "значок для избранного") – значок веб-сайта или веб-страницы. Отображается браузером во вкладке перед названием страницы, а также в качестве картинки рядом с закладкой, во вкладках и в других элементах интерфейса. © Wikipedia

    В марте 1999 года компания Microsoft выпустила браузер Internet Explorer 5, который первым стал поддерживать "значки для избранного " (иконки сайта). С тех пор эта крошечная картинка есть у каждого сайта. Запустив свое первое веб-приложение, созданное на Delphi с использованием библиотеки uniGUI, я увидел в закладке браузера иконку Delphi.


Обычно для добавления сайту иконки достаточно поместить ее в корневой каталог сайта под названием "favicon.ico ". Но у сайта на UniGUI нет корневого каталога. А положить favicon.ico в каталог с модулем ничего не дает. Исправить эту маленькую неприятность можно различными способами.

15 апреля 2020

RAD Studio 10.4 beta. Первые весточка

 Уж полночь близится, а Германа все нет.
Я знаю, он придет, рассеет подозренье.
 "Пиковая дама" © Александр Пушкин

    В последние дни февраля 2020-го года компания Embarcadero объявила о запланированном на март 2020-го года выпуске бета-версии RAD Studio 10.4. Прошел март. Тишина. Прошла половина апреля. Тишина. Я уже решил, что обещанная бета версия RAD Studio 10.4 застряла в где-то в горах центральной части Аляски. О причине задержки можно только гадать. Толи программисты Embarcadero как обычно никуда не торопятся пока добавляют новые баги, т.е. фичи, толи Embarcadero последовала примеру других компаний и из-за набирающей обороты пандемии коронавируса COVID-19 перенесла сроки выпуска на неопределенное время. Но вот в почту легло письмо "Delphi and C++Builder 10.4 Beta Invitation" от Embarcadero Product Team.

07 апреля 2020

PostgreSQL и ошибка "столбец pd.adsrc не существует"

    Меня все больше удивляют авторы СУБД PostgreSQL. На моих тестовых серверах и у клиентов установлена ее 11-я версия. Обычно я стараюсь себе на компьютер устанавливать последние версии программного обеспечения. Так же было и с PostgreSQL - когда возникла необходимость ее установить локально, я установил 12-ю версию. Залил дамп базы, запустил свою утилиту и получил ошибку "column pd.adsrc does not exist". Я сразу подумал, что при импорте дампа возникла ошибка и загрузил его снова. Но ошибка повторилась. Установил PostgreSQL на другой компьютер и получил "столбец pd.adsrc не существует".

31 марта 2020

Туманное будущее C++ Builder

 "Будущее туманно, а конец - всегда близок"
 © Джим Моррисон

    Компания Embarcadero часто подвергается критике, что C++ Builder, по сравнению с Delphi, является для нее пасынком. Большинство их клиентов использует Delphi, поэтому логично, что Delphi является приоритетным направлением в разработке RAD Studio. Тем не менее, они постоянно обещают не забывать о C++ Builder.

29 марта 2020

Создание выпадающего списка в ячейке электронной таблицы

    Современные программы для создания электронных таблиц имеют много интересных функций, которые делают работу пользователя с данными более комфортной. Одна из таких функций "Проверка данных" ("Data Validation") позволяет контролировать корректность ввода данных в ячейке электронной таблицы. Контроль достигается за счет ограничения типа данных или значений, которые можно ввести в ячейку. Одним из часто используемых применений механизма проверки данных является создание выпадающих списков. Давайте посмотрим, как создать выпадающий список в ячейке электронной таблицы "руками" в Google Таблицы и Microsoft Excel. А также создадим его из программы.

18 марта 2020

Denali. Предстоящей версии RAD Studio посвящается

    Сиэтл, Берлин, Токио, Рио... Это не маршрут очередного прощальный тура Scorpions по городам и селам нашей планеты, а кодовые названия релизов последних версий Embarcadero RAD Studio. 28 февраля компания Embarcadero объявила о подготовке выпуска бета-версии RAD Studio 10.4. Она выйдет под кодовым названием "Denali". Если названия Seattle, Berlin, Tokyo, Rio были для меня понятные, то название Denali поставило меня в тупик.

09 марта 2020

TIOBE Index: Delphi вот-вот выпадет из топ-20

 "Цифры в Tiobe немного похожи на отображение мировой популяции диких кабанов, основываясь исключительно на том, сколько мяса кабана продается в супермаркетах"
 © Jon L. Aasenden

    Меня всегда смущал рейтинг популярности языков программирования TIOBE Index. И не только из-за их явно предвзятого отношения к наследникам языка Pascal, но и из-за их рейтингов других языков программирования. Например, как "голые" C и C++ могут быть впереди планеты всей и обгонять тот же C#?

04 марта 2020

Избавляемся от "Процесс не может получить доступ к файлу, так как этот файл занят другим процессом"

    Процесс не может получить доступ к файлу, так как этот файл занят другим процессом... Но это не точно... Как показала практика, для программы на Delphi это действительно не точно.
    При открытии файла в режиме "только для чтения" в параметре определяющем режим доступа к файлу обычно передают комбинацию "fmOpenRead or fmShareDenyNone". Но оказалось, что это избавляет только от части ошибок "Процесс не может получить доступ к файлу, так как этот файл занят другим процессом" или "The process cannot access the file because it is being used by another process".

28 февраля 2020

RAD Studio 10.4 beta. Что день грядущий нам готовит?

    Компания Embarcadero объявила о подготовке выпуска бета-версии RAD Studio 10.4. Ее выпуск под кодовым названием "Denali" запланирован на март 2020-го года. Из незакрытых NDA новшеств RAD Studio 10.4 называются:

Delphi
  • Language Server Protocol под Delphi
  • Улучшения языка: Managed Records
  • Унифицированное управление памятью для всех платформ

Антивирус Касперского против Delphi

    Недавно мое руководство осчастливило нас защитой от "Лаборатории Касперского". Пришел админ и поставил всем Kaspersky Endpoint Security. На днях безопасность мирового класса у меня дала сбой. В крошечной консольной программке сразу после компиляции в Delphi 10.3.1 эвристический анализ антивируса нашел троян "HEUR:Trojan-Banker.Win32.Danabot.gen".
При этом если проект собрать компилятором под Win-64, то он успешно запускается. Так же, как и если 32-х битную версию собрать на Delphi 10.3.2 или Delphi 10.3.3.
    Я сталкивался с таким раньше, когда программа по HTTP скачивала страницу из интернета, но эта всего лишь читает список файлов каталога (исходный текст моего "трояна" является примером к моей следующей статье). Так, что время идет, название антивируса меняется, а алгоритмы касперсого продолжают глючить :-)

26 февраля 2020

Delphi 10.3.3 Open Array Patch

    25 февраля 2020 года для зарегистрированных пользователей RAD Studio, Delphi, C++Builder 10.3 и All-Access компания Embarcadero выпустила очередной хотфикс для RAD Studio 10.3.3 Rio. Он исправляет баг RSP-23939: в программе скомпилированной на Delphi под Win64 вызов унаследованной функции (метода) с параметром типа open array может привести к access violation.

Подробнее о Delphi 10.3.3 Open Array Patch.

RAD Studio 10.3.3 Midas.dll Patch

    25 февраля 2020 года для зарегистрированных пользователей RAD Studio, Delphi, C++Builder 10.3 и All-Access компания Embarcadero выложила новый билд midas.dll. Midas.dll была скомпилирована по-новому, так как ее "затронул" их предыдущий хотфикс от 29 января 2020 года (C++Builder 10.3.3 Threading and TLS Patch).

Подробнее о RAD Studio 10.3.3 Midas.dll Patch.

19 февраля 2020

Обмен сообщениями между базой данных и программой

    Многие современные СУБД представляют возможности для обмена сообщениями между процессами. Чаще всего это уведомления о каких-то событиях в базе данных. Например, об изменении данных или об окончании выполнения процедуры. Принцип реализации этого механизма у всех СУБД одинаковый: один процесс (приложение) подписывается на событие от базы данных и ожидает его, а второй процесс отправляет уведомление об этом событии. В Oracle это позволяют делать процедуры пакетов DBMS_ALERT и DBMS_PIPE, в PostgreSQL команды NOTIFY и LISTEN, в InterBase/Firebird команды POST_EVENT и EVENT INIT/WAIT...

14 февраля 2020

Delphi 1 Client/Server Install ISO

    14 февраля 2020 года, в рамках празднования двадцатипятилетия первого релиза Borland Delphi (#Delphi25th), компания Embarcadero выложила для бесплатного скачивания архив (75.7 МБ) с оригинальным инсталлятором Delphi 1 Client/Server. Он содержит: инсталляторы Delphi 1 Client/Server, BDE, SQL-линков, ReportSmith 2.5, документацию в PDF-формате и прочие материалы. Для установки вам понадобится копия Windows, которая поддерживает 16-битные приложения.

Подробнее о "Historic Delphi 1 Client/Server Install ISO"...

11 февраля 2020

Взлет и падение. Двадцатипятилетию Delphi посвящается

    25 лет тому назад, 14 февраля 1995 года, компания Borland выпустила новый продукт для быстрой разработки приложений - Borland Delphi. Он был предназначен для разработки 16-разрядных приложений под Microsoft Windows. Delphi стала быстро набирать популярность среди разработчиков, оставляя далеко за собой, существовавшие до этого не один год, системы конкурентов. Наблюдая за этим Gupta SQLWindows, Powersoft PowerBuilder, не говоря уже об убогом Microsoft Visual Basic, "нервно курили в сторонке". Выход Delphi не только вдохнул новую жизнь в язык программирования Pascal, но и вывел разработку программного обеспечения на новый уровень, дав тем самым сильный толчок для развития всех средств разработки программного обеспечения. Год за годом Delphi все больше и больше завоевывала сердца разработчиков по всему миру.

31 января 2020

RAD Server Docker Technical Guide

    30 января 2020 года для зарегистрированных пользователей RAD Studio, Delphi, C++Builder 10.3 и All-Access (Enterprise Edition и выше) компания Embarcadero выложила техническое руководство по использованию RAD Server совместно с Docker. Это руководство на 50-ти страницах содержит обзор RAD Server, и описание процессов установки контейнеров RAD Studio Docker (paserver, pa-radserver и pa-radserver-ib), настройки базы данных удаленного RAD Server (InterBase), лицензирования контейнеров RAD Server Docker, использования предварительно созданных образов с Docker Hub (скрипты также доступны на GitHub) и многое другое.

Подробнее...

29 января 2020

C++Builder 10.3.3 Threading and TLS Patch

    29 января 2020 года для зарегистрированных пользователей RAD Studio, C++Builder 10.3 и All-Access компания Embarcadero выпустила хотфикс для C++Builder 10.3.3. Этот патч исправляет баг "RSP-27180 64-bit builds crash with threads", который на некоторых машинах может привести к access violation при создание и использование потока (например, std :: thread).

Подробнее о C++Builder 10.3.3 Threading and TLS Patch.

18 января 2020

RAD Studio 10.3.3 iPhone XS and XR Debugging Patch

    17 января 2020 года для зарегистрированных пользователей RAD Studio, Delphi, C++Builder 10.3 и All-Access компания Embarcadero выпустила седьмой (если не считать патчи локализации) хотфикс для RAD Studio 10.3.3 Rio. Этот патч исправляет баги при отладке приложении на устройствах iOS с использованием процессора A12 (arm64e), включая iPhone XS и XR:
  • RSP-26709 Debugger 'freezes' on iPhone 11 Pro
  • RSP-25732 Can't debug on iOS Device
Проблема в том, что LLDB используемая для отладки на 64-битных приложений наустройствах iOS, не поддерживает этот процессор. Патч представляет собой новую версию Platform Assistant Server (версия 11.2.13.9 от 2020 года) и инструкцию по его установке.

Подробнее о RAD Studio 10.3.3 iPhone XS and XR Debugging Patch.

16 января 2020

Удаление дубликатов строк SQL запросом

    Иногда в базах данных встречаются таблицы без первичного ключа. Это позволяет пользователям вносить в подобные таблицы данные содержащие полные дубликаты строк. Что делать, если перед вами стоит задача почистить эту таблицу от дубликатов?

11 января 2020

RAD Studio 10.3.3 Indy Server SSL Certificate Patch

    10 января 2020 года для зарегистрированных пользователей RAD Studio, Delphi, C++Builder 10.3 и All-Access компания Embarcadero выпустила первый в этом году и шестой (если не считать патчи локализации) хотфикс для RAD Studio 10.3.3 Rio. На этот раз повезло пользователям библиотеки Indy. Он исправляет баг RSP-27144, при котором WEB-сервера, созданные с помощью библиотеки Indy, под Windows не могут загрузить сертификат SSL.

Подробнее о RAD Studio 10.3.3 Indy Server SSL Certificate Patch.