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

Delphi *

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

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

Мировой тур RAD Studio 10 в Санкт-Петербурге

Время на прочтение1 мин
Количество просмотров2.1K
Друзья!

У нас для Вас хорошие новости!

Мы продолжаем Мировой тур RAD Studio 10 и, в этот раз, 26 ноября ждите нас в Санкт-Петербурге.

Мы будем показывать новые возможности RAD Studio 10 Seattle.
Традиционно, в нашем мероприятии примут участие разработчики из Санкт-Петербургского центра разработки, соответственно, у Вас есть возможность узнать все «из первых рук».
Читать дальше →

Серия вебинаров о новых возможностях RAD Studio 10 Seattle

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


Друзья!



Как вы, наверное, знаете мы запустили новую версию RAD Studio 10 Seattle в последний день лета. Чтобы более подробно рассказать Вам об особенностях новой версии мы запускаем серию вебинаров.

Итак, наша программа до конца года.



21 октября — Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 Seattle
28 октября — Создание приложений в FireMonkey для Windows 10 в RAD Studio 10 Seattle
11 ноября — Использование UWP/WinRT Contracts и Notification (уведомления) в Windows 10
Читать дальше →

Как организовать тестирование БД в dUnit

Время на прочтение7 мин
Количество просмотров7.8K
Как известно, в xUnit-фреймворках, простейший test-case состоит из последовательности вызовов SetUp, TestSomething, TearDown. И довольно часто в unit-тестировании требуется подготовить какие-то ресурсы перед основными тестами. Типичный пример этого — соединение с базой данных. И логика подсказывает нам, что было бы весьма затратно, запуская несколько тестов, перед каждым устанавливать соединение с БД в SetUp, и отключаться в TearDown.

Пример модуля
...
type
  TTestDB1 = class(TTestCase)
  protected
  public
    procedure SetUp; override;
    procedure TearDown; override;
  published
    procedure TestDB1_1;
    procedure TestDB1_2;
  end;
...
implementation
...
procedure TTestDB1.SetUp;
begin
  inherited;
  // connect to DB
end;

procedure TTestDB1.TearDown;
begin
  // disconnect from DB
  inherited;
end;
...
initialization
  RegisterTest(TTestDB1.Suite);
end.



Схема вызовов будет такая:

-- TTestDB1.SetUp
---- TTestDB1.TestDB1_1
-- TTestDB1.TearDown
-- TTestDB1.SetUp
---- TTestDB1.TestDB1_2
-- TTestDB1.TearDown

К тому же с БД может статься, что перед тем, как к БД подключиться, её нужно создать с требуемой структурой.

Для решения такой задачи в dUnit есть класс TTestSetup (описан в модуле TTestExtensions).
Читать дальше →

Запуск RAD Studio 10 Seattle в Москве и Алматы

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


Друзья!

Спешу сообщить вам о начале тура по поддержке запуска RAD Studio 10 Seattle.

Мы стартуем с Москвы, в которой будем проводить мероприятие 24 сентября, далее 2 октября ждите нас в Алматы. Следующие города объявим позднее. Следите за новостями.

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

Релиз RAD Studio 10 Seattle

Время на прочтение3 мин
Количество просмотров64K
Друзья, поздравляю всех с выходом RAD Studio 10 Seattle!



Несколько часов назад компания Embarcadero представила новую версию RAD Studio 10 Seattle.
RAD Studio 10 Seattle — это законченное средство для быстрой разработки кроссплатформенных приложений с помощью Object Pascal и C++.

Сразу хочу пригласить вас на вебинар по новым возможностям, который будет проходить в четверг, 3 сентября, в 12-00 MCK. Регистрация.
Читать дальше →

Как настроить iOS-устройство и RAD Studio XE8 (Delphi, C++ Builder)

Время на прочтение4 мин
Количество просмотров20K
Сегодня мы “подружим” или настроим реальное iOS-устройство и RAD Studio XE8 (или Delphi, или C++ Builder, или Appmethod).

В итоге мы сможем запускать наши приложения не только в среде Window, Android, OS X, iOS-симуляторе, но и на реальных iOS-устройствах из одного и того же исходного кода.

План действий:
— настройка макбука + developer.apple.com;
— настройка RAD Studio XE8;
— запуск своего приложения на iOS-устройстве.

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

DxGetText — GNU Gettext for Delphi and C++ Builder

Время на прочтение6 мин
Количество просмотров13K
Посчастливилось мне как-то работать под руководством СТО, который по совместительству соавтор одного интересного проекта — GNU Gettext for Delphi and C++ Builder. Заценил я его только в Delphi, но этого достаточно чтоб понять принцип работы и разобрать какими фичами он обладает.
Вкратце это библиотека, позволяющая внедрять качественную локализацию в продукт общепринятым способом, работает так:
  1. пишем код, почти как обычно;
  2. запускаем приложение, сканирующее исходники на предмет текста, который нужно перевести;
  3. генерим РО файлы;
  4. переводим их в любом удобном редакторе;
  5. компилим РО файлы в МО файлы;
  6. на выбор либо внедряем перевод прямо в ЕХЕ либо кладём МО файлы рядом;
  7. наслаждаемся результатом — язык приложения можно менять даже без перезапуска.

Чем этот способ крут:
  • минимум изменений в коде приложения;
  • никаких DLL и сторонних компонентов, всё OpenSource;
  • РО файлы — достаточно распространенный инструмент перевода, что значит перевод можно даже отдать на аутсорс, и переводчик знает что с этим делать;
  • перевод всего — формы, фреймы, месседжбоксы, и всё что угодно;
  • корректный перевод слов в множественном числе в любом языке;
  • полная поддержка Unicode.
Читать дальше →

Компания Embarcadero объявила о покупке Raize Components

Время на прочтение2 мин
Количество просмотров14K
Друзья!

Компания Embarcadero объявила о покупке компании Raize Components и одновременно о выпуске двух новых продуктов:
Konopka Signature VCL Controls — решение для проектирования интерфейсов Windows приложений;
CodeSite — решение для ведения журналов, для разработчиков на Delphi, C++Builder и Visual Studio.

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

Летняя серия вебинаров по новым возможностям RAD Studio XE8

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


Друзья!

Мы продолжаем летнюю серию вебинаров по новым возможностям RAD Studio XE8.

Итак, наше расписание до конца лета выглядит следующим образом:

29 июля — вебинар о том, как использовать статический анализ для повышения качества кода в Delphi

12 августа — мы расскажем, как создавать приложения для Windows на RAD Studio XE8

19 августа — мы рассмотрим, как работать с интерактивными картами на iOS и Android с помощью компонента TMapView

Регистрация доступна по ссылке: goo.gl/r3rCnw

Мероприятие для преподавателей вузов в Санкт-Петербурге по обучению программированию

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


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

Вот мы и созрели для мероприятия для образования в Санкт-Петербурге.

22 сентября в 14.00 мы ждем преподавателей вузов на семинар: «Обучение программированию и проектное обучение в вузе: среды и технлогии».

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

В программе:
  • Обучение программированию в программе обучения прикладных специалистов в вузах;
  • Обучение мобильной разработке в вузе: особенности, подходы;
  • Обучение созданию кросс-платформенных приложений: как оптимизировать процесс преподавания;
  • Проектное обучение — новый вектор в новых образовательных стандартах;
  • Как успевать за появлением новых технологий: Интернет вещей, роботы, мобильная разработка, web 3.0;
  • Подготовка специалистов, востребованных рынком труда

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

Программируем BitTorrent-клиент. Чистый Delphi

Время на прочтение14 мин
Количество просмотров32K
Прошло 8 лет после написания статьи Игорем Антоновым (Spider_NET) про создание торрент-клиента на C#, но в сети так и не появилось самого простого примера, как это можно сделать на Delphi.

Чтобы развеять сомнения по поводу неэффективности языка Delphi в таком «непростом» деле, как написание полноценного битторрент-клиента, я и решил написать эту статью.

Сразу скажу, что наш торрент-клиент на Delphi будет с открытым исходным кодом и будет поддерживать практически все современные битторрент-технологии, в том числе DHT, magnet-ссылки, последовательная закачка и т.д.
Читать дальше →

Андроиды в дельфинарии

Время на прочтение6 мин
Количество просмотров13K
Приветствую всех любителей тех устройств, что помещаются в карман, а также тех, кто держит свой карман шире 7". Сейчас мы займемся искусством программирования кросс-платформенных графических приложений, то есть таких приложений, которые работают на мобильной платформе (смартфоны и планшеты Android) и под Windows (стационарные PC, ноутбуки, нетбуки, планшеты). При этом наши приложения будут графическими, графика основана на OpenGL (OGL) и его мобильном варианте OpenGL ES (GLES). Я использую Embarcadero Delphi XE7. Важная особенность – в этом проекте я не использую платформу FM (FireMonkey), мы будем писать все сами и с нуля, как в старые добрые времена.

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

Об автоматическом дифференцировании, методе Ньютона и решении СЛАУ на Delphi. Часть 1

Время на прочтение15 мин
Количество просмотров12K
Об автоматическом дифференцировании (АД) на Хабре уже писалось здесь и здесь. В данной статье предлагается реализация АД для Delphi (протестировано в Embarcadero XE2, XE6) вместе с удобными классами методов Ньютона для решения нелинейных уравнений f(x) = 0 и систем F(X) = 0. Любые ссылки на готовые аналогичные библиотеки приветствуются, сам же я подобного не нашел, не считая отличного решателя СЛАУ с разреженной матрицей (см. под катом).
Читать дальше

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

Использование Direct3D с высокоуровневыми библиотеками компонентов VCL/LCL

Время на прочтение13 мин
Количество просмотров11K
Данная публикация адресуется новичкам в области программирования компьютерной графики, желающим использовать графическую библиотеку Microsoft DirectX. Сразу оговорюсь:
— затронутая тема, наверняка, относится и к OpenGL, но я это не проверял опытным путём (созданием приложений под OpenGL), поэтому в заголовке упоминаю только Direct3D;
— приводимые здесь примеры кода относятся к языкам Delphi/FreePascal, но перечисленные «рецепты» по большому счету универсальны в пределах целевой ОС (Windows) — их можно применять к любому языку программирования и, с высокой вероятностью — к любой высокоуровневой библиотеке компонентов, помимо VCL (Delphi) и LCL (Lazarus);
— данная публикация не затрагивает тему создания каркасного приложения Direct3D и методов работы с графическими библиотеками DirectX и OpenGL; все эти вещи хорошо освещены в других источниках, и мне практически нечего к этому добавлять.

Итак, ближе к теме. При разработке приложений с трёхмерной графикой для построения каркаса учебного (а тем более — рабочего) приложения обычно рекомендуется использовать чистый Win32 API… Но если очень хочется использовать в своих приложениях ещё и преимущества высокоуровневых библиотек компонентов, тогда добро пожаловать под кат.
Читать дальше →

Мировой тур RAD Studio XE8 в Казани, Санкт-Петербурге и Тбилиси

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


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

Как вы уже, наверное, знаете мы запустили новую версию RAD Studio – XE8.

Традиционно мы начинаем серию мероприятий в поддержку данного релиза.

В этот раз мы стартуем в Казанском ИТ Парке 19 мая, далее перемещаемся на родину нашего R&D в Санкт-Петербург 21 мая, а окончание тура будет в солнечном Тбилиси 28 мая.
Читать дальше →

Исследование защиты игры Limbo. Кейген

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


Всем привет. Многие знают об этой замечательной игре — LIMBO! Вы даже наверняка покупали ее в Стиме, или качали с торрентов…
Я тоже ее купил когда-то (что и вам советую!), и прошел). Но, как всегда, мне было этого мало, и я, из спортивного интереса, решил изучить ее защиту. Так и появился кейген к игре LIMBO.
Читать дальше →

Как настроить Mac OS X, iOS-симулятор и RAD Studio XE8 (Delphi, C++ Builder)

Время на прочтение4 мин
Количество просмотров38K
Сегодня мы “подружим” или настроим макбук и RAD Studio XE8 (или Delphi, или C++ Builder, или Appmethod).

В результате мы сможем запускать свои приложения не только в среде Windows, но и на макбуке и iOS-симуляторе из одного и того же исходного кода. Эти действия являются основой для настройки и подключения реального iOS-устройств (тема отдельного поста).

План действий:
— настройка макбука (xCode + PAServer);
— настройка RAD Studio XE8 (Profile + SDK);
— запуск своего приложения на макбуке и iOS-симуляторе.

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

Вебинар «Новые возможности RAD Studio XE8»

Время на прочтение1 мин
Количество просмотров17K
Уважаемые друзья!



Сегодня Embarcadero выпустила RAD Studio XE8 и мы хотели бы поделиться с вами информацией об ее особенностях. Для этого мы запланировали вебинар, который мы проведем 9 апреля (четверг) в 12.00.

Глава представительства Embarcadero в Росии и странах СНГ Кирилл Раннев расскажет не только что нового появилось в версии XE8, но и поделиться продуктовой стратегией компании. Менеджер по продуктам, Денис Васильев более подробно остановится на технических особенностях продуктов и продемонстрирует как их можно использовать в разработке.
Читать дальше →

Камасутра с объектами Worksheet и Range в Excel

Время на прочтение3 мин
Количество просмотров14K
Делая раз за разом поисковые запросы вида «delphi excel range» я обнаружил потрясающую бедность, скудоумие и безыдейность предлагаемых примеров готового программного кода. В лучшем случае речь идёт о паре-тройке операций вывода в произвольную ячейку, обо всяких нюансах типа форматирования и доступа к объектам Excel можно… не то чтобы забыть. Авторы ничтоже сумняшеся предлагают переносить код, сгенерированный записью макроса, с учётом синтаксиса Дельфи, в код приложения, которое печатает отчёт. Причём в большинстве примеров используется позднее связывание, которое скрадывает некоторые наиболее ужасные моменты переноса, однако такой код работает далеко не идентично коду на VBA и далеко не все операции обрабатываются должным образом. В результате мы получаем неоправданно громоздкие исходники, компилирующиеся только под определённой версией Delphi/RAD Studio и работающие только с определённой версией Офиса.
Читать дальше →

Работаем с Compound File

Время на прочтение36 мин
Количество просмотров13K
С составными файлами я работаю давно, больше 15 лет. За все время работы у меня накопилось достаточно информации о плюсах и минусах составных файлов.
С одной стороны они являются действительно очень удобным хранилищем информации, позволяющим менять данные на лету, с другой стороны это удобство частично нивелируется скоростью доступа к данным.

Вообще для чего обычно используют составные файлы?
Для всего, что нужно хранить в некоем контейнере (NoSQL подмножество).
К примеру, файлы старых версий Microsoft Office от 97 до 2003 включительно (состоящие на самом деле из нескольких десятков файлов), хранились как раз в составном файле. Сейчас тоже хранятся, только в качестве контейнера используется ZIP.

Инсталляционные пакеты MSI тоже являются составными файлами, и даже файл кэша эскизов папок Thumbs.db использует этот формат.

Правда для того же Word есть целый комплекс утилит (Recovery for Word, Word Recovery Toolbox, Munsoft Easy Word Recovery) восстанавливающих, ну или по крайней мере пытающихся восстановить, поврежденные документы. Выводы можете сделать сами.
Хотя, при должной работе с составными файлами проблему их повреждения можно решить (и я покажу как).

Ну и, конечно же, несомненным плюсом этого формата является то, что внутри хранилища эмулируется полноценная файловая система со своими файлами и папками.

Кстати, нюанс. Перед началом статьи я провел опрос на нескольких форумах, и выяснилось, что подавляющее большинство разработчиков не работают с составными файлами, причем по простой причине — не слышали что это такое.
Вот сейчас и закроем этот пробел.
Читать дальше →

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