Показаны сообщения с ярлыком компоненты. Показать все сообщения
Показаны сообщения с ярлыком компоненты. Показать все сообщения

21 октября 2021

FireDAC vs UniDAC. Получение значения первичного ключа новой строки

    Два года тому назад я писал о получении в программе значения первичного ключа, который сгенерирован СУБД при добавлении новой строки в таблицу. Мои примеры вызова INSERT с модификатором RETURNING (или OUTPUT в случае MS SQL Server) были с использованием библиотеки для доступа к базам данных UniDAC. Давайте посмотрим, как реализована эта возможность в библиотеке FireDAC, которая уже много лет входит в поставку Delphi и C++Builder.

14 июня 2021

Цифровая подпись PDF документов созданных в FastReport

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

07 июня 2021

Программное добавление цифровой подписи в PDF документ

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

31 мая 2021

Встраиваем Microsoft Edge. Управление всплывающими окнами

    В интернет-браузере клик по ссылке с атрибутом "target="_blank"", или клик по ссылке левой кнопкой мыши с нажатой на клавиатуре клавишей ctrl или shift инициируют создание в интернет-браузере новой вкладки или нового окна. В WebView2 нет встроенной поддержки вкладок, поэтому в этой ситуации всегда открывается новое окно браузера. Например, в программе на Delphi первый клик по ссылке в TEdgeBrowser откроет окно браузера, второй клик в этом окне откроет второе окно и так до бесконечности. Самое плохое то, что эти новые окна мы уже не контролируем. Они живут своей жизнью даже после закрытия программы.
TEdgeBrowser/WebView2 NewWindowRequested
На скриншоте в логе программы видно, что открытие первой ссылки программа перехватила, а открытие второй ссылки, которое инициировано в окне браузера, программа не видит.

24 мая 2021

Встраиваем Microsoft Edge. Просмотр содержимого загруженной в WebView2 веб-страницы

    Добавленный в RAD Studio 10.4 Sydney новый контрол TEdgeBrowser позволяет легко встроить браузер Microsoft Edge на основе Chromium в приложение написанное на Delphi или C++Builder. Но его функциональные возможности ограничены возможностями Microsoft.Web.WebView2. Например, у всех интернет-браузеров есть функция для просмотра исходного кода загруженной в него веб-страницы, а у WebView2 такого метода нет. Но этот недостаток можно легко исправить.

23 апреля 2021

Извлечение изображений из файла формата PDF

    Я уже писал о создании документов в формате PDF. Он представляет собой контейнер, который состоит из объектов различного типа: текста, изображений, шрифтов и так далее. Иногда может потребоваться операция обратная созданию – разобрать этот контейнер на составные части. Сегодня я рассмотрю извлечение изображений из PDF файлов и сохранение их на диск.

22 марта 2021

Использование TrueType шрифтов Microsoft в FastReport FMX под Linux

    Шрифты, устанавливаемые на компьютер вместе с продуктами Microsoft, плотно вошли в нашу жизнь. Их использование в документах – это давно уже не дань моде или привычке. Это требование, закрепленное в наших государственных стандартах. Например, шрифт Times New Roman упоминается в "инструкции по оформлению документов с использованием компьютерных технологий в органах государственного управления и иных государственных организациях". Дистрибутивы Linux не поставляется с проприетарными шрифтами Microsoft. Но, тогда как заставить исполняемую под Linux программу создавать в FastReport документы, соответствующие высоким государственным стандартам?

16 марта 2021

Встраиваем Microsoft Edge. Дополнение №2 "Новшества Delphi 10.4.2"

    Я уже два раза писал про возможность встраивания в приложение на RAD Studio 10.4 браузера Microsoft Edge на основе Chromium. Одной из проблем с которой столкнулись программисты в Delphi 10.4.1 является несовместимость TEdgeBrowser с WebView2 старше, чем выпущенная 8 месяцев тому назад версия 0.9.579 (багрепорт от клиентов RSP-31427). Причиной этого является то, что TEdgeBrowser в Delphi 10.4-10.4.1 после своего создания выполняет инициализацию элемента управления WebView2 в фоновом потоке, а разработчики из Microsoft отключили эту возможность.

02 марта 2021

FastReport меняет лицензию

    Мой интерес к Linux и комментарии к статье о создании документов в формате PDF подтолкнули меня к экспериментам с FastReport FMX. Задумавшись о получении на него лицензии я попытался разобраться, что поменялось в лицензировании генератора отчетов FastReport за последние 5-6 лет пока я им не пользовался? А ни чего. Но, по информации из надежного источника следует, что мы в шаге от новых правил лицензирования продуктов компании FastReport. Сегодня я решил поделиться этими слухами, так как нашел им подтверждение в тексте лицензионного соглашения FastReport VCL. Поэтому у меня для вас есть две новости. Как говорится, "одна плохая, вторая..."

24 февраля 2021

Новый VCL-контрол TNumberBox в Delphi 10.4.2

    Как было анонсировано в прошлом году, в Delphi 10.4.2 добавлены новые VCL-контролы. С учетом того, что разработчики RAD Studio нас не часто балуют подобным, это заслуживает внимания. О виртуальном listview в стиле DBCtrlGrid – TControlList, я уже писал. Сейчас я расскажу о новом контроле для вода числовых значений – TNumberBox.

22 февраля 2021

Создание PDF файла в Linux без графической оболочки используя FastReport FMX

    В комментариях к статье "Создание PDF файла в Windows и Linux" читатели рассказали о использовании для создания документов в формате PDF генератора отчетов FastReport. У меня уже был подобный опыт, и я даже писал об этом 10 лет тому назад. Сейчас я не стал приводить пример с FastReport, так как моя статья была написана еще до выхода FastReport FMX версии 2.8, в которой была добавлена поддержка FmxLinux. Сегодня я сделал несколько первых экспериментов с FastReport FMX под Ubuntu Desktop 20.04. Он действительно работает под Linux! Запускать мой тест экспорта в PDF я решил, как и в прошлой статье, не под Ubuntu Desktop, а под Ubuntu Server.

08 февраля 2021

Создание PDF файла в Windows и Linux

    Различные операционные системы все больше теснят MS Windows в технических заданиях. Часто все усугубляется пугающим в недалеком прошлом словом "кроссплатформенность". Многие задачи могут потребовать серьезной доработки для портирования под другую операционную систему. Повезет тем, кто изначально заложил в проект использование кроссплатформенных библиотек. Им портирование можно будет реализовать в несколько строк кода или добавлением директив компилятора. Одним из самых востребованных кроссплатформенных форматов электронных документов является формат PDF. Сегодня я рассмотрю несколько вариантов создания файлов в этом формате под Windows и Linux. Но они подойдут и для других операционных систем.

18 января 2021

Clever Internet Suite. Аутентификация на SFTP-сервере с помощью SSH-ключа

    В статье "Передача файлов по SFTP" я подключался к SFTP-серверу используя парольную аутентификацию пользователя. Теперь давайте рассмотрим аутентификацию пользователя с помощью SSH-ключа. Для нее используется пара ключей: открытый (public, публичный) и закрытый (private, приватный). Публичный ключ хранится на сервере и представляет собой цифровой замок, который можно открыть только с помощью закрытого ключа. Считается, что аутентификация с помощью SSH-ключа обеспечивает более надежную проверку подлинности пользователя.

06 января 2021

Встраиваем Microsoft Edge. Дополнение

    В мае 2020-го года я писал про использование TEdgeBrowser для встраивания в приложение на Delphi браузера Microsoft Edge на основе Chromium. В комментариях к статье появились жалобы, что TEdgeBrowser не работает. Я попробовал запустить пример, который скомпилировал при ее написании - действительно не работает. Что случилось?

14 декабря 2020

Clever Internet Suite. Передача файлов по SFTP

    SFTP (SSH File Transfer Protocol) - протокол прикладного уровня, предназначенный для выполнения различных операций с файлами через безопасное соединение. В отличие от FTP, он шифрует команды и данные, предотвращая открытую передачу конфиденциальной информации по сети. Давайте посмотрим, как из программы на Delphi загрузить файл на SFTP-сервер и скачать его.

09 декабря 2020

DelphiMVCFramework. Собственный обработчик ошибок

    Осенью я написал на Delphi небольшой REST-сервис для обмена данными с информационной системой другой компании. По регламенту информационного взаимодействия ответ на HTTP-запрос с ошибкой должен быть в формате JSON:
{
  "error_code": код ошибки,
  "error_name": "текст ошибки"
}

23 ноября 2020

Использование переменных среды в FireDAC

    Environment variables (переменные среды или переменные окружения) появились в 7-й версии Unix в 1979 году и с тех пор используются всеми операционными системами для хранения некоторых своих настроек. Например, всем пользователям Windows известен такой параметр как "PATH". Некоторые программы, чтобы указать путь, по которому нужно их искать, создают собственные переменные среды. Библиотека для работы с базами данных FireDAC позволяет программисту использовать переменные для указания пути к нужным файлам.

09 июля 2020

Уменьшение размера PDF файла

    Часто сгенерированный программой файл формата PDF имеет размер больше, чем нам хотелось бы. Возникает законное желание как-нибудь его уменьшить. Документ формата PDF представляет собой контейнер, который состоит из различных элементов: текст, изображения, шрифты и так далее. Все эти элементы можно сжать, а значит размер PDF файла можно уменьшить.

17 июня 2020

Изменение разрешения изображения. Ускорение

    Приведенный в статье "Изменение разрешения изображения" алгоритм изменения разрешения изображения рабочий, только, как оказалось, очень медленный. Я сразу подумал, что это из-за использования мной режима масштабирования изображения HALFTONE. Но, даже при использовании режима COLORONCOLOR, моя процедура в 3-4 раза медленнее стандартного метода Canvas.StretchDraw!

09 июня 2020

Изменение разрешения изображения

    Предположим, что у вас возникла нужда изменить разрешение изображения. Например, чтобы сделать его миниатюру (thumbnail) для предварительного просмотра. Для этого можно воспользоваться какой-нибудь библиотекой для работы с графикой. Можно реализовать алгоритм самому. Но можно обойтись и подручными средствами, то есть функциями Delphi и WinAPI.