Наверное, каждый программист в своей жизни должен написать игру тетрис. Одни это сделают для того, чтобы сдать курсовую, другие для получения морального удовлетворения. Но игра всегда останется примером того, как простая идея может жить вечно.Компилятор: Delphi 5
Скачано: 14531 · Комментарии: 10 · Рейтинг:
Самому вроде не нужно. Шахматы.
Скачано: 14514 · Комментарии: 13 · Рейтинг:
Скачано: 11458 · Комментарии: 2 · Рейтинг:
Довольно серьёзный программный продукт. Программа для составления и разгадывания японского кросворда. работает в ч/б и цветном варианте. Присутствует куча настроек. Поддерживают различные сложности игры.Компилятор: Delphi
Скачано: 11312 · Комментарии: 3 · Рейтинг:
Вы в роли колобка. Игра конечно же для тех кому нечем заняться 🙂 Сложностей при игре не замечено. Художники-оформители постарались на славу. Похоже, что игрушка требует DirectX (какой версии неизвесно).Компилятор: Delphi
Скачано: 9578 · Комментарии: 6 · Рейтинг:
Учусь писать компоненты на Delphi
В некотором смысле это пример того, что сделать свою стратегию не так уж и сложно. В искуственном интеллекте реализовано: строительство баз, добыча золота и атака. Вывод спрайтов осуществляется с помощью OpenGL.
Скачано: 9526 · Комментарии: 4 · Рейтинг:
От Автора: Довелось мне как-то озадачиться идеей написать редактор карт для моей новой игры. Скажу сразу, что задача эта не из простых. Приступим сразу к делу. Как правило, в двумерных стратегических играх типа Warcraft, Heroes of Might and Magic, Z и т. д. карты строятся из ячеек. Иными словами, карта — это матрица с некоторыми числовыми значениями внутри ячеек.
Скачано: 9468 · Комментарии: 5 · Рейтинг:
Скачано: 9128 · Комментарии: 5 · Рейтинг:
Источник: www.ishodniki.ru
Статьи
В этой статье я расскажу как сделать иконку своей программы в трее. Для этого нужно скачать и установить компонент с моего сайта — CoolTrayIcon.
Функции с файлами
Функции с файлами в Delphi. Как удалить файл? Как переместить файл? Как переименовать файл? Как копировать файл?
Все это вы найдете в этой статье.
Flash в Delphi
Чтобы иметь возможность работать с Flash-роликом, необходимо импортировать компонент ActiveX для Flash. Естественно, это возможно, если в операционной системе есть библиотека Flash.ocx или SWFlash.ocx.
Отправка сообщения на E-mail через SMTP
Как отправить сообщение на почту через Delphi? Очень просто! И так, начнем с самого обычного процесса.
INI файлы
ini-файлы — это обычные текстовые файлы, которые можно редактировать и просматривать при помощи любого текстового редактора.Возможно, вы их уже видели в папках с программами, играми и другими приложениями.В этой статье я расскажу, как научить программу считывать настройки из этого файла.
5 ХУДШИХ языков программирования, которые не стоит учить!
Установка RxLib
Дорогие друзья, в этой статье мы поймём, как устанавливать компоненты RxLib версии 2.75 на Delphi 7.
Запрет на закрытие формы
Чтобы запретить пользователю закрывать форму обычным способом (нажатием на крестик), используйте этот код.
Открываем ссылку в браузере
Чтобы открыть страничку в браузере, добавьте ShellAPI в uses и используйте код.
Как совсем скрыть форму?
Для того, чтобы скрыть форму, используйте функцию ShowWindow.
Установка Alpha Skin
Дорогие друзья, в этой статье мы поймём, как устанавливать компоненты Alpha Skin на Delphi 7.
Использование Alpha Skin
Сейчас я покажу как использовать компоненты Alpha Skin на примере программы.
Запуск внешнего приложения и ожидание его завершения
Пример показывает как из Вашей программы запустить внешнее приложение и подождать его завершения.
Поиск файлов
В этой статье мы с вами ознакомимся с основными принципами программной организации поиска файлов.
Изменение громкости звуков в Windows
Изменить громкость звуков в Windows можно при помощи следующих функций.
Как узнать информацию о системе в Delphi
Вы, возможно, видели нестандартные дельфийские компоненты, позволяющие сделать лог системы. Сейчас мы самостоятельно реализуем что-нибудь не хуже.Прежде всего, где хранится эта самая системная инфа? В Реестре, куда мы сможем залезть, добавив модуль Registry в раздел Uses.
Копирование файлов
Нет другого такого процесса в программе инсталляции, который бы выглядел снаружи столь простым и был бы в реализации столь сложным, как копирование.
Копирование программы во временный каталог
Чтобы не смущать высокое собрание подробным рассмотрением алгоритма, приведу конкретный пример исходника.
Запугивание пользователя законами об авторских правах
Да, есть и такой этап. Если вы пишете программу, которая будет распространяться как freeware, вам всё равно придётся вывести небольшое окно и поставить пользователя в известность о том, что вы не отвечаете за все неприятности, которые могут с ним произойти во время использования вашей программы.
Программа неведимка
В последнее время интерес к программам-невидимкам снова возрос.
Подсветка компонента во время перемещения над ним мыши
Вы должны обрабатывать сообщения CM_MOUSEENTER и CM_MOUSELEAVE примерно таким образом.
Создание группы программ
Рассмотрим создание группы программ средствами Проводника. Дело в том, что меню, которое вы видите, нажав на кнопку Пуск, хранится на диске в виде обычных каталогов и файлов.
Как получить список инсталлированных программ
Приведу пример программы.
Помещение записи в одну из секций автозапуска реестра
Пример показывает как поместить запись в одну из секций автозапуска реестра.
Как обрабатывать сообщения
Обработка сообщений означает, что приложение будет тем или иным образом реагировать на полученные от операционной системы сообщения. В стандартном приложении Windows обработка сообщений сосредотачивается в процедурах окна. Delphi, частично обрабатывая сообщения, упрощает работу программиста, позволяя вместо одной процедуры для обработки всех типов сообщений создавать независимые процедуры для обработки сообщений различных типов.
Липкие окошки
В статье рассматривается приём создания обработчиков сообщений, которые позволяют форме при перетаскивании прилипать к краям экранной области.
Web-страница внутри приложения
Данная статья показывает, как можно легко добавить в Delphi-приложение HTML-страницу и связанные с ней файлы.
Как прочитать ID3-Tag’и из MP3-файла?
На самом деле, как это не кажется, прочитать ID3-теги из MP3-файла совсем не сложно и, более того, для этого не требуется никаких специальных компонентов. TMediaPlayer здесь также бессилен. Все ID3-теги хранятся в последних 128-ми байтах MP3-файла. Часть из них записана не в том виде, в каком мы привыкли их читать в Winamp или в другом проигрывателе.
Диалог в стиле wizard’а
В этой статье на простом примере я покажу, каким образом можно организовать в своей программе диалоговое окно с пошаговым выполнением какой-либо задачи.
Защита формы паролем
Раз это вызывает такой интерес, сегодня мы попробуем разобраться с азами такой защиты. Давайте обсудим как мы это будем делать.
Как изменить иконку у директории
Обычно, для изменения вида папок в Проводнике используется файл desktop.ini.
Что такое #13#10?
Несомненно, вы много раз видели в Delphi-коде нечто #13#10. Если вы не знаете, что это такое и каждый раз удивляетесь, то здесь вы узнаете ответ.
Использование и создание DLL в Delphi
В связи с бурным развитием технологий программирования, все больше людей сталкиваются с проблемой наращивания возможностей своих программ. Данная статья посвящена именно этому вопросу, а именно — программирование DLL в Borland Delphi. Кроме того, так как мы затронем вопросы по использованию библиотек DLL, то попутно коснемся импортирования функций из чужих DLL (в том числе и системных, т.е. WinAPI).
Глобальная горячая клавиша
Чтобы программа реагировала на нажатие определённых клавиш даже в неактивном состоянии, не обязательно ставить хук на клавиатуру.
Запустить файл, указанный в реестре
В реестре имеется в определенной ветке строковый параметр. Необхдимо считать его содержимое (в нем хранится путь к файлу) и запустить его. Напишим функцию которая будет это делать. Нам понадобятся 2 модуля (Registry, ShellAPI), которые необходимо будет добавить в раздел uses. первый для работы с реестром. Из второго нам потребуется функция ShellExecute.
Как нарисовать рамку фокуса
Для того, чтобы создать более дружественный интерфейс, можно рисовать рамку фокуса вокруг активного компонента.
Изменение заголовка диалогового окна печати
Все диалоговые окна, такие, как TOpenDialog, TSaveDialog и другие унаследованы от TCommonDialog. Большинство имеют свойство Title, которое позволяет изменять заголовок диалогового окна.
Как закрыть чужое приложение
Для того, чтобы программно закрыть чужое приложение, нужно отправить этому приложению сообщение WM_QUIT.
HotKeys — горячие клавиши
HotKeys — комбинации клавиш, на которые может реагировать приложение, даже если оно не имеет фокуса или запущено в трее.
Работа с форматом M3U
Формат этого файла таков: в начале файла есть служебное слово [#EXTM3U], означающее, что выбранный нами файл действительно m3u.
Знакомство с SQLite
Часто на форумах, да и здесь на сайте спрашивают, какую базу данных выбрать. Хочу сегодня представить вам ещё один движок БД, у которого есть свои преимущества.
Работа с директориями в Delphi
В этой статье я постараюсь познакомить Вас с некоторыми стандартными функциями для работы с директориями.
Конвертирование графических форматов
С помощью Delphi можно полноценно конвертировать графические форматы один в другой.
Создание хранителя экрана (ScreenSaver)
Главное о чем стоит упомянуть это, что ваш хранитель экрана будет работать в фоновом режиме и он не должен мешать работе других запущенных программ.
Delphi и системная информация о ресурсах компьютера
Иногда Delphi-приложениям может не хватать функциональной полноты стандартной библиотеки компонентов и тогда бывает необходимо обратиться к Microsoft Win32 API (Application Programming Interface — интерфейса взаимодействия прикладной программы с операционной системой).
Пирамидальная сортировка
Алгоритм пирамидальной сортировки (heapsort) — один из самых быстрых алгоритмов сортировки.
Создание своего диалога выбора цвета
В этой статье я решил описать один вариант создания своего диалога выбора цвета.
Управление мышью
Каждый элемент управления обладает набором свойств и методов, обеспечивающих управление мышью.
Рисуем график функции в Delphi
В этой статье мы рассмотрим несколько способов нарисовать график какой-нибудь функции. Рисовать график мы будем на канве компонента Image.
О формах
Как известно, в приложениях, написанных на Делфи, если два типа форм – создаваемые автоматически (AutoCreate form) и создаваемые вручную.
Введение в Synapse
Часто, чтобы раскритиковать программистов на Delphi, используют простой и дешёвый трюк. Мол, мы, истинные программисты пишем весь код ручками, а вы, делфисты, набросали компонентов и всё.
Pascal и Delphi
Трудно рассказать что-то новое о том, что хорошо известно всем. Действительно, вряд ли найдется в нашей стране программист или просто выпускник средней школы, который не знал бы (или не слышал) об этом языке программирования.
Процедуры для работы с динамическими переменными
Основные процедуры для работы с динамическими переменными приведены ниже.
Написание оптимального кода под Delphi
В данной статье рассмотрены принципы, помогающие компилятору Delphi генерировать более оптимальный с точки зрения скорости код. Если Вы не хотите вникать в подробности, в конце статьи есть «свод правил», которые рекомендуется соблюдать при написании программ.
Локализация встроенных констант
Данная статья показывает, как можно перевести на русский язык строки.
Применение фреймов для написания правильных приложений
Не знаю как вы, а я в свое время часто встречался со следующей ситуацией.
Леворекурсивный парсер
Иногда надо взять текст и разобрать его на составляющие, но не просто разобрать, а ещё и сделать анализ, и на основании этого получить другие данные.
Динамические структуры данных
Что такое динамические структуры? Да просто данные, размер которых может меняться во время работы программы.
Программирование математических приложений
В данной статье рассматриваются основные аспекты программирования пользовательских математических приложений.
Массив из элементов — как с ним бороться или как с ним дружить
Здесь информация о: Создание массива; Работа с массивом; Заполнение массива во время работы программы; Использование объектов, созданных во время проектирования формы; Получение номера элемента массива в процедуре обработки события.
Перемещение изображений по форме с помощью мыши
Во время работы над одной программой предо мной встала задача организации перемещения нескольких изображений пользователем с помощью мыши. Я не крутой мастер DELPHI, и найденное мною решение не претендует на полноту, его недостатки я рассмотрю ниже, но я надеюсь, что опыт, приобретённый при решении будет полезен читателю.
Автоматическое сохранение и восстановление свойств формы
Очередная маленькая хитрость будет посвящена автоматическому сохранению и восстановлению свойств формы, таких как размер, позиция, состояние.
Создание DLL с Web-ресурсами
Появление в палитре компонентов Borland C++ Builder компонента TCppWebBrowser и компонента TWebBrowser в палитре компонентов Borland Delphi открыло для программистов этих двух сред возможности использования функциональности Internet Explorer’а в прикладных программах. В совокупности со средствами HTML-редакторов, TCppWebBrowser (TWebBrowser) позволяет с легкостью создавать автономные продукты, базируемые на технологии Web-дизайна, отличающиеся не только быстротой и качественностью написания, но и современным интерфейсом. Однако, самым неприятным фактом в использовании данного компонента при написании локального программного продукта, каковым могут быть, например, мультимедийная энциклопедия либо интерактивный учебник, является необходимость наличия отображаемых HTML-страниц, являющихся частью самой программы. Явное их присутствие в открытом виде на дистрибутивах или в уже установленном состоянии на жестких дисках вызывает непреодолимое желание любознательного пользователя заняться их самостоятельным редактированием и некоторое чувство незаконченности процесса создания продукта у самого программиста. Самыми простым и легким способом решения подобной проблемы является помещение служебной информации программы (Web-страниц) в ресурсы DLL.
Что такое «Змейка» и как с ней бороться?
Сразу отвечу на первый вопрос. Змейка это игра, в которой вы управляете полоской, набирая очки. Цель у игры одна: набрать наибольшее количество очков.
Создание генераторов и триггеров в InterBase
В данной статье я опишу реализацию небольшой утилиты для InterBase, которая создает генераторы, автоматически вызываемые из триггеров.
Источник: thedelphi.ru
Delphi *
Занимался обёрткой для OpenAI для Делфи и вдобавок сделал клиент.
Прошу заранее прощения, я хотел сделать пост нового типа, но с телефона не увидел, как это можно сделать.
Всего голосов 35: ↑33 и ↓2 +31
Добавить в закладки 61
Новости
все подряд лучшие
Dimon2022 22 мар в 09:35
Как правильно бегать — с пятки или с носка? Измеряем, сравниваем ударные нагрузки, время в полете. Android, акселерометр
Время на прочтение 4 мин
Количество просмотров 17K
В интернет почти все «бегают» с носка, а в реальных соревнования и пробегах — с пятки. В статье описаны результаты измерения ударных нагрузок, возникающих при беге разными стилями с помощью обычного смартфона.
Всего голосов 51: ↑45 и ↓6 +39
Добавить в закладки 56
Rouse 4 мар в 19:57
Сканер установленных перехватчиков в памяти процесса
Время на прочтение 98 мин
Количество просмотров 7.4K
В статье будет рассмотрен один из методов поиска изменений в памяти процесса, на основе построения полной карты уязвимых к перехвату адресов. Рассмотрена работа со списками загрузчика, ручным разбором таблиц импорта/отложенного импорта/экспорта/TLS загруженных файлов, c обработкой форварда функций и ApiSet редиректов.
Будет показана методика доступа в 64 битное адресное пространство чужого процесса из 32 битного кода через статически сформированный ассемблерный шлюз, так и подход с применением автоматически генерируемого гейта.
Будет дано много комментариев «почему» применяется тот или иной подход, а также описание различных проблемных ситуаций, основанных в том числе как на собственном опыте, так и на разборе кода системного загрузчика, поэтому будет интересна и подготовленным специалистам.
Всего голосов 54: ↑54 и ↓0 +54
Добавить в закладки 96
dalfy 17 янв в 19:11
Lazarus-AVR, №2. Как получить кросс-компилятор для микроконтроллеров AVR с помощью Fpcupdeluxe
Время на прочтение 2 мин
Количество просмотров 1.9K
Микроконтроллеры: AVR; Среда программирования IDE Lazarus 32х (кросс-платформенный) (ОС: Windows 64х).
В прошлой статье я описывал подключение компилятора Avr к IDE Lazarus, но у меня не работало автодополнение кода (при нажатии ctrl+пробел появляется выпадающее меню с вариантами кода). Спустя 29 дней разборок я добился корректной работы автодополнения. Что бы отделить «мух от котлет» (не все используют fpcupdeluxe) я решил вынести описание работы с fpcupdeluxe в отдельную статью.
Всего голосов 10: ↑10 и ↓0 +10
Добавить в закладки 14
Истории
ap1973 27 дек 2022 в 14:45
Как отрефакторить 2.5 млн строк кода
Время на прочтение 18 мин
Количество просмотров 5K
Истерический, негативно-позитивный пост добра и ненависти, обо всем и ни о чем, из которого вы узнаете: как папа Крузо встретил маму Робинзона, почему трава зеленая а смурфики голубые, как нам реорганизовать Рабкрин и много других, важных штук.
Всего голосов 25: ↑24 и ↓1 +23
Добавить в закладки 27
dalfy 19 дек 2022 в 15:12
Lazarus-AVR, №1. Программирование микроконтроллеров AVR в IDE Lazarus
Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 7.3K
Вот появилось желание написать небольшой проектик для себя с применением микроконтроллера. В CodeVisionAVR команды не подсвечиваются по Ctrl+Пробел, да и Си что-то начал забывать, вспоминать — лень. Конечно, вспомнить Си — это 10-30 минут, но лень. Поэтому, было решено начать проект в родной IDE Lazarus, она же кросс-компилируемая! Правда, понять, как включить avr в Lazarus, чтоб компилировался hex-файл ушло 3 дня :), поэтому пишу здесь, чтоб другие не мучались, а сразу пользовались.
Всего голосов 35: ↑35 и ↓0 +35
Добавить в закладки 57
Hidadmin 8 ноя 2022 в 11:59
Гэри Дарби, автобиография — Delphi For Fun
Время на прочтение 4 мин
Количество просмотров 2.2K
Уверен, что история жизни этого человека достойна быть упомянутой на Хабре, поэтому хочу поделиться переводом его автобиографии (за качество перевода сильно не пинать). Тем более, что вот как уже несколько лет его нет в живых, однако надеюсь, что его примеры решения головоломок пригодятся всем, кто интересуется программированием, математикой и просто созданием прикольных штук на Delphi и не только. Да и в целом полагаю, что его жизненный путь многим покажется интересным, а для кого-то, возможно, и поучительным.
Всего голосов 14: ↑14 и ↓0 +14
Добавить в закладки 16
GreekIgor 1 сен 2022 в 07:04
Онлайн кассы ОФД класс на Delphi
Время на прочтение 7 мин
Количество просмотров 2.5K
В данном туториале, я описываю как я решал задача по интеграции с кассами ООФД
Всего голосов 5: ↑4 и ↓1 +3
Добавить в закладки 6
dvsa 24 июл 2022 в 11:41
Компиляторы против компиляторов
Время на прочтение 5 мин
Количество просмотров 15K
Давно хотел познакомиться с Rust. Язык с экосистемой сборки из коробки, компилятор в машинный код, но самое главное — автоматическое управление памятью, но без сборщика мусора. С учетом того, что управление памятью обещается как zero-cost в runtime — просто сказка! По ходу изучения и возник вопрос – а насколько код Rust быстрее/медленнее компилятора в машинный код давно известного, например, Delphi?
Всего голосов 68: ↑11 и ↓57 -46
Добавить в закладки 19
SergeyPyankov 16 мая 2022 в 00:07
Полуфабрикат Windows-службы
Время на прочтение 16 мин
Количество просмотров 6K
Один из способов доморощенной классификации служб основывается на времени их жизни: некоторые из них запускаются сразу же при старте ОС , оставаясь активными постоянно (сюда, скажем, можно отнести веб-серверы и СУБД), другие же запускаются лишь при необходимости, делают свои архиважные дела и сразу завершаются; при этом, ни один из вариантов сам по себе не делает реализацию службы сложнее, однако второй требует от разработчика как минимум ещё и умения программно стартовать, а при необходимости и досрочно останавливать её работу. Именно указанный аспект управления службой, плюс добавление некоторых отсутствующих в штатной поставке Delphi возможностей, и сподвиг автора на данный опус.
Чтобы статья воспринималась максимально полезной и практичной, в ней предлагается заготовка (почти готовый к употреблению шаблон) службы, обрабатывающей очередь неких задач (или заданий – кому как больше нравится); после того, как все из них обработаны, служба тут же завершается. Если представить графически, то читатель познакомится со следующей конструкцией:
Всего голосов 6: ↑6 и ↓0 +6
Добавить в закладки 34
BerArtVlad 11 мар 2022 в 17:17
Добавление функции передачи в SDR# с HackRF
Время на прочтение 2 мин
Количество просмотров 5.7K
Эта библиотека добавляет возможность использования HackRF One, совместно с приложением SDR#, в качестве трансивера. Это реализовано внедрением промежуточного слоя между SDR# и библиотекой HackRF.DLL, который подготовлен с таким же интерфейсом, что и стандартная библиотека HackRF.DLL. При этом добавлена форма и несколько функций для формирования сигнала и модуляции в него звука из микрофона. Пока реализована только частотная модуляция.
После установки данного дополнения, при запуске SDR# и выборе HackRF, будет открываться дополнительно окно, позволяющее переключать HackRF в режим передачи.
Всего голосов 7: ↑7 и ↓0 +7
Добавить в закладки 30
AKlimenkov 28 дек 2021 в 08:22
Гипотеза Коллатца — самый крутой математический фокус всех времён
Время на прочтение 4 мин
Количество просмотров 99K
В сети и в развлекательной литературе нередко можно встретить разные математические фокусы: вас просят задумать какое-то число, затем выполнить с ним ряд арифметических действий. После этого собеседник точно называет получившееся у вас число.
Гипотеза Коллатца оставляет все подобные фокусы позади. На первый взгляд может показаться, что это тоже какой-то фокус с подвохом.
Всего голосов 84: ↑78 и ↓6 +72
Добавить в закладки 114
AKlimenkov 17 дек 2021 в 08:37
Как Гомер Симпсон почти решил уравнение Великой теоремы Ферма
Время на прочтение 8 мин
Количество просмотров 60K
Казалось бы, что может быть общего между одной из самых популярных математических теорем, Гомером Симпсоном и Дональдом Кнутом? Как и многие другие интересные идеи и задачи, их объединяет математика.
Задача, о которой я хочу рассказать, совсем не сложная. Думаю, её без труда сможет решить даже начинающий программист. Но эта задача интересна и весьма необычна. Ведь не каждый день предоставляется возможность проверить вычисления героя культового мультсериала Гомера Симпсона.
Всего голосов 123: ↑122 и ↓1 +121
Добавить в закладки 94
GreekIgor 29 ноя 2021 в 12:45
Как я Подружил React и сканер HP LJ M127
Время на прочтение 4 мин
Количество просмотров 1.7K
Главная форма имеет следующий вид, и как видно из скриншота позволяет нам в быстром наборе, выбирать заказчика и исполнителя, но основной функционал заключается в другом, а именно в сканировании и сохранении документа, побочные функции это удаление, перемещение , добавление сканированных документов.
Всего голосов 2: ↑1 и ↓1 0
Добавить в закладки 4
andrey_ssh 20 ноя 2021 в 22:18
Как заменить себя скриптом. Часть 1. Режимы коротких замыканий в электросети с применением OpenCL
Время на прочтение 19 мин
Количество просмотров 3.6K
Длительная однообразная работа неизбежно вызывает приступы автоматизации. На этот раз предпримем попытку автоматизировать настройку устройств защиты электросетей напряжением 6 — 35 кВ.
Самозародившаяся задача требует расчёта коротких замыканий, а поскольку расчётов таких предвидится немало, выполнять их будем с помощью OpenCL, для должной утилизации имеющихся вычислительных мощностей.
Всего голосов 14: ↑14 и ↓0 +14
Добавить в закладки 35
Laax 14 ноя 2021 в 12:04
Delphi+OpenCV
Время на прочтение 13 мин
Количество просмотров 8.2K
Сначала была мечта…
Что-то похожее на робототехническую систему, с двумя подвижными камерами, способностью отслеживать (направлять «взгляд» на) заданный объект и определять расстояние до объекта. И это был 2012 год. Но так как я больше программист нежели железячник, то все началось с реализации существующих в то время алгоритмов. Скоро пришло осознание, что алгоритмы и их реализация не есть цель.
Цель – робототехническая система. Поэтому было принято решение воспользоваться существующими библиотеками обработки изображений. Но, к сожалению, на Object Pascal готовые библиотеки алгоритмов, которые были найдены в то время, не позволяли решать поставленные задачи.
Всего голосов 21: ↑20 и ↓1 +19
Добавить в закладки 22
ap1973 3 ноя 2021 в 17:32
Реализация Smart Pointers в Delphi, и еще немного
Время на прочтение 6 мин
Количество просмотров 5.4K
В последних версиях Delphi, появилось много новых, интересных возможностей. Сейчас попробуем сделать, с их помощью, что-нибудь полезное. Конкретно, создадим тип, который владеет объектом, ведет себя как этот объект, но при этом автоматически освобождается, когда на него больше нет ссылок.
Для начала приведу пример двух процедур: первая классическая, вторая использует новые типы. Дальше рассмотрим как это реализовано.
Всего голосов 22: ↑22 и ↓0 +22
Добавить в закладки 33
SergeyPyankov 27 сен 2021 в 22:07
Хранение изображений сайта в БД
Время на прочтение 8 мин
Количество просмотров 24K
Автор должен признаться: статья родилась и выросла из довольно небольшой и не претендующей на откровение оптимизации сайта, описанного в другом материале. Сайт этот связан с музыкальной тематикой и, соответственно, активно отображает обложки альбомов, хранящиеся (до поры до времени) на сервере не в ФС , как обычно бывает, а в БД SQL Server (в BLOB-поле, о чём несложно догадаться); в старом варианте пора извлечения изображений из базы и сохранения их в виде файлов возникает в момент запроса альбомов пользователем, после чего (по истечении сессии) они удаляются.
Чтобы почти окончательно развеять куцую интригу и помочь возможному читателю определиться с тем, имеет ли смысл продолжить чтение, опишу конечный результат оптимизации: обложки по-прежнему останутся в базе данных, причём в поле того же типа, но вот веб-сервер, отдающий в итоге изображения клиенту, будет «обманут» и станет обращаться за файлом знать не зная, что его на самом деле нет в ФС, а вызов идёт сразу и непосредственно к СУБД. Такой «обман» конечно же не является самоцелью – всё в основном затевалось ради уменьшения нагрузки на дисковую подсистему.
Всего голосов 13: ↑6 и ↓7 -1
Добавить в закладки 43
stoi 20 июн 2021 в 13:58
Delphi и SQLite. Альтернатива хранимым процедурам
Время на прочтение 3 мин
Количество просмотров 9.8K
SQLite во многих случаях является удобным, незаменимым инструментом. Я уже не могу себе представить — как мы все жили без него. Тем не менее, есть некоторые неудобства при его использовании, связанные с тем, что это легкая встраиваемая СУБД.
Самое большое неудобство для меня, как Delphi-разработчика — отсутствие хранимых процедур. Я очень не люблю смешивать Delphi-код и SQL-скрипты. Это делает код намного менее читабильным, и затрудняет его поддержку.
Предлагаю свой вариант решения проблемы:
Выносим весь SQL-код в отдельный файл ресурсов, подключенный к проекту
Запросы в SQL-файле разделяем маркерами начала с идентификаторами и маркерами конца
Создаем класс — менеджер SQL-запросов. При загрузке приложения он читает SQL-файл из ресурсов и составляет из него список хранимых процедур.
В процессе работы приложения менеджер извлекает текст SQL-запроса по его идентификатору для последующей его передачи на выполнение
Всего голосов 23: ↑23 и ↓0 +23
Добавить в закладки 31
Osiris74 25 апр 2021 в 11:28
Даешь свободную литературу! Или как я с политикой вуза боролся
Время на прочтение 5 мин
Количество просмотров 8.9K
Доброго времени суток, хабровчане! Это мой первый пост на форуме, так что прошу строго не судить.
Как и полагается любому техническому вузу – в нашем есть куча интернет ресурсов, которыми вуз чрезмерно гордится. Однако есть оборотная сторона медали – качество этих сервисов. А именно, если говорить про электронную библиотеку, о коей и пойдет речь в данной статье, то в ней напрочь отсутствует возможность скачивания pdf-версии нужной тебе методички, точнее она есть, но за это придется заплатить немало денЯк. Деньги далеко не маленькие (если говорить именно про цену за вузовские методички). Если же такой формат не устраивает, то можешь пользоваться онлайн библиотекой.
В онлайн библиотеке есть просмотрщик книг, через который можно читать литературу. Просмотрщик оформлен максимально неудобно: долгое время не работал переход на определенную страницу книги, и книгу в 700 страниц приходилось перелистывать по страничке, что превращалось в адскую муку. Но самое ужасное в этом сайте то, что каждые 20 минут он просит авторизоваться по новой…
И теперь представьте картину: человек пытается подготовиться к контрольной по квантовой механике по методичкам преподавателя, объемом 700 страниц, где необходимый материал находится на 500, и может перелистывать по 5 страничек в минуту, и каждые 20 минут, его попытки приходится возобновлять.… В общем, жесть…. И вот после очередной неудачной попытки прочитать нужную главу, я решил, что пришло время положить конец данному произволу.
Источник: habr.com