Обновить
170.5

Delphi *

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

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

Симулятор инсулинотерапии

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

Так получилось, что я в своей жизни столкнулся с сахарным диабетом 1 типа у детей. Данное заболевание требует постоянного контроля и поддержания в пределах нормы уровня сахара в крови для обеспечения высокого качества жизни. Можно жить по старинке – проводить измерения глюкометром и колоть инсулин с помощью шприцов. А можно использовать современное технологичное устройство – инсулиновая помпа. Современная инсулиновая помпа позволяет контролировать уровень сахара в крови и вводить инсулин на прием пищи и для поддержания фоновой суточной потребности. С технической точки зрения инсулиновая помпа – это высокоточный насос для подачи инсулина, схема управления с беспроводным интерфейсом для приема данных о сахаре с беспроводного сенсора.

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

За 9 лет инсулинотерапии был пройден путь от инсулиновой помпы Medtronic 722 до Medtronic 740. На всем этом долгом пути я встретил очень большую проблему – недостаточный уровень обучения помповой инсулинотерапии как врачей, так и родителей детей-диабетиков.

При этом нет механизма обучения, только «боевой» вариант, когда устройство установлено на пациенте и от твоих действий зависит его состояние и здоровье в целом.

Читать далее

Кроссплатформенный фреймворк FireMonkey, Delphi

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

В этой статье я покажу, что из себя представляет фреймворк FireMonkey, на что он способен и в чем его основная идея. Подробно рассматривать технические отличия от VCL не буду, но некоторых вещей обязательно коснусь. Прошу не судить строго за статью, я постараюсь следить за ошибками в тексте и постараюсь донести свою мысль. Также, знаю, как сейчас относятся к Delphi, но тем не менее статья именно о нём. И первым делом, хотелось бы немного об этом поговорить. 

Ну, говори

Object Pascal в 2024-м

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

Всем привет! Меня зовут Сергей!

В данной статье речь будет идти больше о FPC/Lazarus, но так же многое, вероятно, можно будет отнести и к Delphi. Это будет что-то вроде обзора возможностей Lazarus вперемешку с начальными уроками. Многого я тут не раскрою (по моему мнению) и надеюсь читатель не будет надеяться что я смогу полностью раскрыть все секреты программирования (не надо, не надо меня за эти слова бить) в одной статье. Я надеюсь что данная статья поможет новичкам, а так же даст некоторую информацию не совсем новичкам.

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

перейти к статье

Множества Мандельброта — на Delphi

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров2.2K
Я нарисовал множества Мандельброта на Delphi а не flat assembler!
Embarcadero Delphi for Win32 compiler version 35.0
А именно:

DCC32.EXE
rlink32.dll
SysInit.dcu
System.dcu

Все!


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

Когда я был маленьким, я писал авиасимулятор. Часть I

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

Одна из самых главных мотиваций для многих профессионалов своего дела — в первую очередь, финансовая, как и для меня сейчас. И это логично. Но я уверен, что многие из нас, особенно те, кто начинал свой путь в программирование в школьные годы чудесные, иногда вспоминают то время, когда ты ещё достаточно молод для того, чтобы идти вперёд за идеей, а не за деньгами (конечно это утрировано, но всё же).

Это история моего старта. Того, как я, будучи десятиклассником, познавал все прелести программирования и разработки через достижение поставленных «амбициозных» целей.

*настоящая статья является первой из двух запланированных по этой теме

Вперед в прошлое

Пишем REST-приложение на Delphi

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

Привет, Хабр!

Я Ануар, работаю в GlowByte и профессионально играю на нервах (шутка ?).

К написанию статьи подвигла ситуация отсутствия в Рунете информации, как с использованием Delphi реализовать классическое трехзвенное приложение без использования фреймворков и каких-то приближенных к Microsoft технологий. Ниже следует текст немного в шутливой форме о мини-квесте «Как быстро написать распределенное многозвенное приложение на Delphi, использующее REST API». 

Целью было написать статью, которая бы коротко и ясно показывала, как реализовать такой функционал, так как не нашел статей и примеров именно по этой тематике и проблематике. Может, кому-то пригодится при освоении и понимании азов REST API. Возможно, кому-то статья покажется «для самых маленьких», но я надеюсь, что она будет полезна как в практическом смысле, так и теоретическом и поможет понять, как все это работает.

Поехали!

API для своей программы (Delphi)

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

Здравствуйте


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

Что такое API?


Я позволю себе малюсенькую вырезку из вики: «Интерфейс программирования приложений (иногда интерфейс прикладного программирования) (англ. application programming interface, API [эй-пи-ай])[1] — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах. Используется программистами для написания всевозможных приложений.»
Читать дальше →

«Отучаем» WinFXNet от жадности (часть 1)

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

Предыстория

В сфере АСУ ТП инженерам по работе приходится не только писать ПО, но и использовать готовое ПО от производителей оборудования. В связи с санкциями, многие поставщики покинули РФ, а оборудование и ПО необходимо продолжать эксплуатировать дальше.

В данной статье будет расмотрена WinFXNet - программа производителя Schneider Electric (ESMI) для конфигурирования станций пожарной сигнализации серии Esmi FX. К сожалению, из-за санкций, ключ USB Esmi FX FFS00393016 приобрести нельзя, а он, в свою очередь, имеет встроенный таймер, который настроен на 4-летний период. У многих данный ключ по времени уже закончился, плюс скоро закончится и лицензия на само ПО (файл формата lic). Поэтому достаем дизассемблеры и посмотрим, можно ли обойти данную защиту.

Disclaimer: Данная заметка написана в ознакомительных целях и не является руководством к действиям. Хотя, понимая всю безвыходность данной ситуации, как временное решение имеет право на жизнь, но решать только вам. Статья написана как туториал, поэтому постараюсь детально описать все шаги поиска нужных мест в программе.

Приступить к анализу

Новости «LumanBox»: масштабирование, open source, осмысление опыта ведения индивидуальной базы знаний

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

Новости проекта «Luman Box» для Windows: масштабирование, открытие исходников, осмысления опыта веденияи индивидуальных баз знаний, размышление над перспективами метода и проекта

Читать далее

Process Memory Map

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

Я программист, а то что я еще и реверсер - ну... так совпало. И как любому из людей занимающимся реверсом мне всегда не хватает функционала отладчика. Постоянно приходится допиливать под конкретную задачу какие-то утилитарные вещи и однажды...
Однажды я решил - хватит, каждый раз пилить новое достаточно утомительно, а что если взять и объединить все наработки в один инструмент и пользоваться именно им!
Это будет скорее рекламный пост - но не спешите минусовать, возможности утилиты, о которой пойдет речь, а называется она Process Memory Map, весьма обширны, и возможно вам понравится :)

Итак - что это такое? Она похожа на всем известный инструмент от Марка Руссиновича VMMap (которая кстати частично основана на коде Джефри Рихтера), её задача проанализировать сторонний процесс и вытащить из него максимум данных, о которых она знает.

Читать далее

Как стать Delphi-программистом за час «для самых маленьких»

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

Принято считать, что программирование это сложно, но это миф (все проще чем кажется), и все что нужно чтобы стать программистом это немного упорства и изобретательности.

В этой статье мы получим все базовые навыки, которые нужны Delphi программисту (включая базовые знания RunTime, работу с Com-объектами и Canvas, вводом\выводом, файлами, парсингом, ооп, и тд), по окончании статьи.

Окунутся в чудесный мир бесконечного скрол

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Узнать

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

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

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

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

В этой статье мы рассмотрим десяток сред разработки, оказавших самое большое влияние за последние тридцать лет программирования. IDE ранжированы по порядку, от десятого места до первого.
Читать дальше →

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

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

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

Пример динамического сайта
Читать дальше →

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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


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

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

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

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

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

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

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

* * *

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

Читать далее

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

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

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

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

Читать далее

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