Два года тому назад я писал о получении в программе значения первичного ключа, который сгенерирован СУБД при добавлении новой строки в таблицу. Мои примеры вызова INSERT с модификатором RETURNING (или OUTPUT в случае MS SQL Server) были с использованием библиотеки для доступа к базам данных UniDAC. Давайте посмотрим, как реализована эта возможность в библиотеке FireDAC, которая уже много лет входит в поставку Delphi и C++Builder.
Язык программирования самого высокого уровня содержит всего несколько команд для управления программистами
Показаны сообщения с ярлыком компоненты. Показать все сообщения
Показаны сообщения с ярлыком компоненты. Показать все сообщения
21 октября 2021
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 откроет окно браузера, второй клик в этом окне откроет второе окно и так до бесконечности. Самое плохое то, что эти новые окна мы уже не контролируем. Они живут своей жизнью даже после закрытия программы.
На скриншоте в логе программы видно, что открытие первой ссылки программа перехватила, а открытие второй ссылки, которое инициировано в окне браузера, программа не видит.
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.
Подписаться на:
Сообщения (Atom)