Как стать автором
Обновить
6.6

Delphi *

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

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

Телеграмм накрылся)), бот не работает. Делаю GUI-заменитель

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 9.5K

Всем привет.
Не так давно выложил статью про бота.

И вот тут меня зацепил) один комментарий.

Уже в момент создания бота в голове крутилась реализация десктопного GUI-заменителя).
Сложности я там не увидел. Но шо-то народ говорит сложно. Не попробуешь - не узнаешь), а тут удалось выкроить немного свободного времени. Погнали)

Качаю Delphi 11CE (бесплатная, письма с ссылками приходили на яндекс-почту), ставлю Python4Delphi - увязывает между собой ЯП и Delphi4PythonExporter - позволяет экспортировать GUI на Delphi в Python (не пригодился).

Мгновенно набрасываю минимальный интерфейс:

Читать далее
Всего голосов 19: ↑9 и ↓10 -1
Комментарии 28

Новости

Мультиплатформенность приложений в 2023

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 10K

Где в 2023 году искать настоящую нативную кроссплатформенность?

Я прошел Golang → Rust → C# → Python → Java → Kotlin → Free Pascal, в поисках мультиплатфореммнного GUI, для десктопов и мобильных и кое что нашел.

Многие считают что web или pwa это и есть кроссплатформенность, многие считают, что это Flutter или electron, но что там на самом деле?

Узнать
Всего голосов 35: ↑31 и ↓4 +27
Комментарии 82

Революционные IDE, повлиявшие на разработку ПО

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 30K
В старину при написании кода вы видели лишь чёрный текст на белом фоне. Для того чтобы писать код, требовалось много внимания и аккуратности. Опечатки не подсвечивались автоматически, а синтаксические ошибки обнаруживались только в процессе компиляции. По сравнению с современным программированием это был совершенно иной процесс.

Asymetrix ToolBook, когда-то популярный благодаря мультимедийным возможностям, но уже давно позабытый

В этой статье мы рассмотрим десяток сред разработки, оказавших самое большое влияние за последние тридцать лет программирования. IDE ранжированы по порядку, от десятого места до первого.
Читать дальше →
Всего голосов 98: ↑90 и ↓8 +82
Комментарии 181

Симбиоз «Chromium» и «InternetTools»

Уровень сложности Средний
Время на прочтение 28 мин
Количество просмотров 2.5K
Заполучить определённые сведения с динамического сайта – это не сказать что очень редкая, но всё же специфическая задача, решение которой и предлагает статья (без покидания, насколько возможно, уютных рамок Delphi); под динамической страницей автор понимает не просто сайт, содержащий JavaScript (в современных реалиях найти ресурс без него довольно сложно), а страницу, на которой интересующие разработчика данные изначально отсутствуют в документе, полученном от веб-сервера, появляясь исключительно после отработки JS-кода, каким-то образом вычисляющего их, либо запрашивающего нужную информацию от некоего сервера.

Если читатель раньше не сталкивался с подобной проблематикой, то наверняка приведённое сжатое описание малопонятно, поэтому обратимся к конкретному примеру – пусть требуется извлечь альбомы некоторой группы с metal-archives.com:

Пример динамического сайта
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 4

Истории

Кроссплатформенный клиент для ChatGPT

Уровень сложности Простой
Время на прочтение 1 мин
Количество просмотров 15K

Занимался обёрткой для OpenAI для Делфи и вдобавок сделал клиент.

Прошу заранее прощения, я хотел сделать пост нового типа, но с телефона не увидел, как это можно сделать.

Читать далее
Всего голосов 35: ↑33 и ↓2 +31
Комментарии 25

Как правильно бегать — с пятки или с носка? Измеряем, сравниваем ударные нагрузки, время в полете. Android, акселерометр

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

В интернет почти все "бегают" с носка, а в реальных соревнования и пробегах - с пятки. В статье описаны результаты измерения ударных нагрузок, возникающих при беге разными стилями с помощью обычного смартфона.

Читать далее
Всего голосов 51: ↑45 и ↓6 +39
Комментарии 182

Сканер установленных перехватчиков в памяти процесса

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


В статье будет рассмотрен один из методов поиска изменений в памяти процесса, на основе построения полной карты уязвимых к перехвату адресов. Рассмотрена работа со списками загрузчика, ручным разбором таблиц импорта/отложенного импорта/экспорта/TLS загруженных файлов, c обработкой форварда функций и ApiSet редиректов.
Будет показана методика доступа в 64 битное адресное пространство чужого процесса из 32 битного кода через статически сформированный ассемблерный шлюз, так и подход с применением автоматически генерируемого гейта.
Будет дано много комментариев «почему» применяется тот или иной подход, а также описание различных проблемных ситуаций, основанных в том числе как на собственном опыте, так и на разборе кода системного загрузчика, поэтому будет интересна и подготовленным специалистам.
Читать дальше →
Всего голосов 54: ↑54 и ↓0 +54
Комментарии 24

Навеяно проблемой четырёх красок

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 4.6K

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

Для непосвящённых… Проблема четырёх красок формулируется очень просто: «Для раскраски любой карты на плоскости достаточно четырёх красок».

При этом, если области (страны) «касаются» только в одной точке, то считается, что они не граничат и их можно раскрасить в один и тот же цвет. Так, например, для раскраски клеток шахматной доски достаточно двух цветов.

Более того, Мартин Гарднер в книге «Математические головоломки и развлечения» упоминает, что доказана теорема «о двухцветных картах», которая утверждает, что «любую карту на плоскости можно раскрасить в два цвета тогда и только тогда, когда все её вершины чётны» (здесь, «вершиной» называется точка, в которой сходятся границы более двух стран).

* * *

Создал очень НЕинтересную игру, навеянную этой Проблемой.

Читать далее
Всего голосов 25: ↑25 и ↓0 +25
Комментарии 6

Lazarus-AVR, №2. Как получить кросс-компилятор для микроконтроллеров AVR с помощью Fpcupdeluxe

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

Микроконтроллеры: AVR; Среда программирования IDE Lazarus 32х (кросс-платформенный) (ОС: Windows 64х).

В прошлой статье я описывал подключение компилятора Avr к IDE Lazarus, но у меня не работало автодополнение кода (при нажатии ctrl+пробел появляется выпадающее меню с вариантами кода). Спустя 29 дней разборок я добился корректной работы автодополнения. Что бы отделить "мух от котлет" (не все используют fpcupdeluxe) я решил вынести описание работы с fpcupdeluxe в отдельную статью.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 2

Как отрефакторить 2.5 млн строк кода

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

Истерический, негативно-позитивный пост добра и ненависти, обо всем и ни о чем, из которого вы узнаете: как папа Крузо встретил маму Робинзона, почему трава зеленая а смурфики голубые, как нам реорганизовать Рабкрин и много других, важных штук.

Читать далее
Всего голосов 25: ↑24 и ↓1 +23
Комментарии 21

Lazarus-AVR, №1. Программирование микроконтроллеров AVR в IDE Lazarus

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 7.8K

Вот появилось желание написать небольшой проектик для себя с применением микроконтроллера. В CodeVisionAVR команды не подсвечиваются по Ctrl+Пробел, да и Си что-то начал забывать, вспоминать - лень... Конечно, вспомнить Си - это 10-30 минут, но лень... Поэтому, было решено начать проект в родной IDE Lazarus, она же кросс-компилируемая! Правда, понять, как включить avr в Lazarus, чтоб компилировался hex-файл ушло 3 дня :), поэтому пишу здесь, чтоб другие не мучались, а сразу пользовались.

Читать далее
Всего голосов 35: ↑35 и ↓0 +35
Комментарии 23

Гэри Дарби, автобиография — Delphi For Fun

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

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

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 6

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

Компиляторы против компиляторов

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

Давно хотел познакомиться с Rust. Язык с экосистемой сборки из коробки, компилятор в машинный код, но самое главное — автоматическое управление памятью, но без сборщика мусора. С учетом того, что управление памятью обещается как zero-cost в runtime — просто сказка! По ходу изучения и возник вопрос – а насколько код Rust быстрее/медленнее компилятора в машинный код давно известного, например, Delphi?

Посмотреть на финалистов
Всего голосов 68: ↑11 и ↓57 -46
Комментарии 47

Полуфабрикат Windows-службы

Время на прочтение 16 мин
Количество просмотров 6.6K
Один из способов доморощенной классификации служб основывается на времени их жизни: некоторые из них запускаются сразу же при старте ОС, оставаясь активными постоянно (сюда, скажем, можно отнести веб-серверы и СУБД), другие же запускаются лишь при необходимости, делают свои архиважные дела и сразу завершаются; при этом, ни один из вариантов сам по себе не делает реализацию службы сложнее, однако второй требует от разработчика как минимум ещё и умения программно стартовать, а при необходимости и досрочно останавливать её работу. Именно указанный аспект управления службой, плюс добавление некоторых отсутствующих в штатной поставке Delphi возможностей, и сподвиг автора на данный опус.

Чтобы статья воспринималась максимально полезной и практичной, в ней предлагается заготовка (почти готовый к употреблению шаблон) службы, обрабатывающей очередь неких задач (или заданий – кому как больше нравится); после того, как все из них обработаны, служба тут же завершается. Если представить графически, то читатель познакомится со следующей конструкцией:

Взаимодействие службы с очередью и управляющим приложением
Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 6

Добавление функции передачи в SDR# с HackRF

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

Эта библиотека добавляет возможность использования HackRF One, совместно с приложением SDR#, в качестве трансивера. Это реализовано внедрением промежуточного слоя между SDR# и библиотекой HackRF.DLL, который подготовлен с таким же интерфейсом, что и стандартная библиотека HackRF.DLL. При этом добавлена форма и несколько функций для формирования сигнала и модуляции в него звука из микрофона. Пока реализована только частотная модуляция.

После установки данного дополнения, при запуске SDR# и выборе HackRF, будет открываться дополнительно окно, позволяющее переключать HackRF в режим передачи.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 12

Гипотеза Коллатца — самый крутой математический фокус всех времён

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

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

Гипотеза Коллатца оставляет все подобные фокусы позади. На первый взгляд может показаться, что это тоже какой-то фокус с подвохом.

Читать далее
Всего голосов 84: ↑78 и ↓6 +72
Комментарии 105

Как Гомер Симпсон почти решил уравнение Великой теоремы Ферма

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

Казалось бы, что может быть общего между одной из самых популярных математических теорем, Гомером Симпсоном и Дональдом Кнутом? Как и многие другие интересные идеи и задачи, их объединяет математика.

Задача, о которой я хочу рассказать, совсем не сложная. Думаю, её без труда сможет решить даже начинающий программист. Но эта задача интересна и весьма необычна. Ведь не каждый день предоставляется возможность проверить вычисления героя культового мультсериала Гомера Симпсона.

Читать далее
Всего голосов 123: ↑122 и ↓1 +121
Комментарии 47

Как я Подружил React и сканер HP LJ M127

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

Главная форма имеет следующий вид, и как видно из скриншота позволяет нам в быстром наборе, выбирать заказчика и исполнителя, но основной функционал заключается в другом, а именно в сканировании и сохранении документа, побочные функции это удаление, перемещение , добавление сканированных документов.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Комментарии 7

Как заменить себя скриптом. Часть 1. Режимы коротких замыканий в электросети с применением OpenCL

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


Длительная однообразная работа неизбежно вызывает приступы автоматизации. На этот раз предпримем попытку автоматизировать настройку устройств защиты электросетей напряжением 6 — 35 кВ.

Самозародившаяся задача требует расчёта коротких замыканий, а поскольку расчётов таких предвидится немало, выполнять их будем с помощью OpenCL, для должной утилизации имеющихся вычислительных мощностей.
Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 17

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

Работа