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

Delphi *

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

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

Работа с ShapeFile (*.shp) в среде Delphi

Время на прочтение4 мин
Количество просмотров14K
В ходе работы столкнулся с задачей чтения файлов с расширением ".shp". Та информация, которую я нашел в интернете, была разрозненной и расплывчатой, и, поэтому, я решил объединить то, до чего мне пришлось доходить самостоятельно, и рассказать вам.

Постановка задачи


У нас имеется файл с расширением ".shp". В этом файле находится карта в виде изолиний: каждая изолиния сделана отдельным шейпом; наименованием шейпа является высотная характеристика изолинии. Нашей задачей станет считать данные из этого в массив. Массив представляет собой набор точек определенный тремя координатами (x, y, z). Далее этот массив нужно занести в базу данных, но данный момент мы упустим из рассмотрения.
Читать дальше →

Использование процедур и функций в Delphi

Время на прочтение7 мин
Количество просмотров133K
Рано или поздно любому программисту потребляется использовать процедуры и функции. Все мы помним еще с паскаля, что там ничего нет сложного, но некоторые вещи обычно в книжках не описываются, хотя для грамотного составления программы требуется знать.
Читать дальше →

Визуальный компонент-монитор COM-порта

Время на прочтение3 мин
Количество просмотров26K
Сегодня мы попробуем создать визуальный компонент для работы с разного рода считывателями, подключаемыми по COM-порту (правильное название интерфейса – RS232). Наша цель — получать последовательность байт, которую отправляет устройство при считывании.
Читать дальше →

Использование Crinkler с Delphi

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

Введение


Существует масса способов уменьшить размер исполняемого файла. Когда кастрация системных RTL юнитов уже завершена, а размер по-прежнему режет простор для фантазии демосценера, работающего в направлении 4k intro или 64k demo, в ход вступают компрессоры. Один из самых известных среди них — UPX, т.к. существует под массой платформ и безразличен к содержимому исполняемого файла. Но существуют и компрессоры-линковщики, которые благодаря своей специфике способны производить более тонкие махинации с исполняемым файлом ещё на этапе сборки.
В этой статье пойдёт речь о широко известном в кругу демосценеров линковщике Crinkler и проблемах которые мне пришлось решить, чтобы приспособить это чудо для сборки Delphi проекта.
Читать дальше →

Как перестать программировать на Delphi и начать жить

Время на прочтение4 мин
Количество просмотров90K
Если ты, %username%, едва прочитав заголовок этой статьи, чувствуешь butthurt стойкое неприятие к автору, если слова «TForm1», «circular reference» и «Access violation» для тебя не пустой звук, если после очередного холивара в уголке сознания снова зашевелился червячок — эта статья для тебя.

С завидной регулярностью появляются новые статьи как сторонников так и противников Delphi, и неизменно с новой силой разгорается холивар. И если лет 10-15 назад холивар назывался «Delphi vs C++», то теперь фронт переместился вплотную к окопам сторонников бывшего Borland и спор идет уже в рамках «Delphi vs не-Delphi». Даже самые упрямые последователи Н.Вирта иногда задумываются, почему вдруг стали изгоями и чудаками в сообществе программистов?
Если ты, читатель, все же считаешь что ничего кроме Delphi тебе не нужно для работы, сравни хотя бы вилки зарплат для вакансий Delphi и той же Java. Появилось желание изучить что-нибудь кроме Delphi? Я расскажу с чего начать на основе собственного опыта.
Читать дальше →

Почему Delphi «умирает» или «программист – не читатель, программист – писатель»

Время на прочтение4 мин
Количество просмотров50K
Здравствуйте, уважаемые хабражители! С наступившим Новым годом! Желаю вам удачного кодинга, безбажного кода, понимающих руководителей, понятливых подчиненных и терпения при разборе кода, написанного предшественником.

Хочу поделиться некоторыми мыслями по поводу уменьшения популярности горячо любимого мною языка программирования — Delphi. Итак, не будем тянуть кота за яйца, а возьмем быка за рога.

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

Значит, чтобы получить как можно больше профита, требуется уменьшить затраты на
Читать дальше →

Подробнее об атрибутах в Delphi 2010. Пример — проверка данных

Время на прочтение4 мин
Количество просмотров6.9K
МышаВ моей предыдущей статье Кратко об атрибутах в Delphi 2010, я показал основы связанные с созданием, применением и опросом атрибутов. Однако, я не привел пример, для чего вы могли бы их использовать.

Вероятно, наиболее распространенным является пример для персистентности, и, действительно, кто-то опубликовал подобный пример на сайте Wings of Wind. Я хотел бы показать другое их применение — для проверки данных (Validation).
Читать дальше →

Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism

Время на прочтение3 мин
Количество просмотров8.7K
Совсем-совсем недавно вышел новый релиз Embarcadero RAD Studio XE (2010). Предлагаю ознакомиться с новыми возможностями этой среды по сравнению с версией 2010.

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

Постоянно открывающееся окно CPU с остановкой на ntdll.dbgbreakpoint

Время на прочтение1 мин
Количество просмотров2.9K
Delphi ntdll.dbgbreakpointС недавнего времени почему-то при запуске приложения стало постоянно открываться окно CPU и первая точка остановки ntdll.dbgbreakpoint. Непредвиденные точки останова повторяются часто и необходимо вручную продолжать выполнение. Это говорит о каких-то неполадках или отсутствии информации для отладки в приложении.

Однако, в приложении ровным счетом ничего не изменилось, настройки Delphi не менялись. Откуда же тогда неизвестная информация? Как вернуться к нормальной работе?
Читать дальше →

Контексты RTTI в Delphi 2010: как это работает и как их использовать

Время на прочтение4 мин
Количество просмотров4.9K
Delphi 2010 включает в себя расширенную поддержку RTTI, также известную как информация о типах времени выполнения (run-time type info) или рефлексия. Множество подходов в проектированию раньше были доступны только в управляемых языках, таких как C# и Java, так как для них необходима аннотация кода (code annotation) и интроспекция (самоанализ). Теперь это возможно и в мире Delphi.

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

Поддержка рефакторинга атрибутов в Delphi 2010

Время на прочтение1 мин
Количество просмотров1.6K
РефакторингЯ упоминал ранее, что в этом выпуске большая часть работы была отведена для дополнительных функциональных возможностей и их улучшения. В результате, IDE продолжает меня приятно удивлять. Я пробую делать что-то, даже не задумываясь о том, а будет ли это работать вообще, и нахожу что оно не просто работает, а работает даже лучше, чем я мог себе представить.

Один из примеров касается поддержки рефакторинга атрибутов.
Читать дальше →

Преобразование ссылки на интерфейс для реализации класса в Delphi 2010

Время на прочтение2 мин
Количество просмотров5.4K
Не все нововведения в Delphi 2010 большие и заметные. Команда потратила массу времени реализуя множество дополнительных функциональных возможностей, исправлений и улучшений. Некоторые из них могут показаться незначительными по отдельности, но они не только в целом окзывают существенное влияние, но и значительно добавляют гармоничности продукту.

Одна из возможностей Delphi 2010, которая, как мне кажется, породит массу споров — это возможность привести интерфейсную ссылку назад к типу класса, реализующего этот интерфейс.
Читать дальше →

Кратко о RTTI и атрибутах в Delphi 2010

Время на прочтение3 мин
Количество просмотров15K
RTTI (Runtime Type Information) было тщательно переработано в Delphi 2010.
RTTI является центральным элементом, на котором написано Delphi IDE, он существует со времен первого выпуска, однако я слышал от некоторых людей на протяжении многих лет, что они попытались использовать RTTI и нашли это слишком сложным и замысловатым, особенно по сравнению с Reflection API в Java и .NET. Вот это настоящий позор, поскольку возможность писать код для запроса подробной информации о других объектах, не зная заранее их типа, это действительно мощная возможность.
Читать дальше →

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

TcxFilterControl и TcxDBFilterControl — продвинутые запросы в руках пользователя

Время на прочтение3 мин
Количество просмотров3.9K
В работе почти любой базы данных наступает момент, когда показывать все данные нет смысла, а иной раз и возможности. И тут все начинают увлеченно городить всякого рода формы для первоначального отбора данных, часто с предустановками, например — данные только за сегодня, только в «рабочем» статусе и т.д. Если речь идет про отображение списка сложных документов, например, накладных с 2-мя десятками полей, то окно задания условий может иметь несколько закладок и все равно не решать всех задач. Но, как это часто бывает, все украдено придумано до нас ;)
image
Рис.1 TcxFilterControl в работе
Читать дальше →

Обобщенные интерфейсы в Delphi

Время на прочтение3 мин
Количество просмотров7K
Первод стаьи от Malcolm Groves, «Generic Interfaces in Delphi».

imageБольшинство примеров использования дженериков в Delphi используют класс с дженерик-типом. Однако, работая над своим проектом, я решил, что мне нужен интерфейс с дженерик-типом.

В проекте используется встроенный механизм издатель-подписчик. Я захотел чтобы подписчик имел для каждого типа события отдельный метод Receive, а не отдельный метод с огромным case-выражением, выбирающим действие для каждого типа события. Также я не хотел определять интерфейс для каждого типа события. Мне был нужен дженерик интерфейс подписчика, который получает тип события, как параметр.

Однако, я понятия не имел, могу ли я определить дженерик интерфейс, не говоря уже о реализации. Даже если предположить, что я могу сделать это, сможет ли Delphi выбрать правильный метод Receive для вызова? Есть только один способ узнать…
Читать дальше →

Самые интересные публикации 2009 года о Delphi

Время на прочтение5 мин
Количество просмотров7K
В этом году в русскоязычном Delphi-сообществе было опубликовано огромное количество материалов. Можно было запросто пропустить что-то интересное. Я постарался собрать в одной публикации ссылки на наиболее интересные публикации 2009 года. Все публикации имеют прямое отношение к Delphi. Получилось довольно много. Большое спасибо любезным авторам!

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

Несколько событий в Delphi-блогосфере

Время на прочтение1 мин
Количество просмотров975
Несколько новостей связанных с миром Delphi.

DelphiFeeds.ru


Стараниями Александра Божко, в интернете появился агрегатор русскоязычных новостей о Delphi. Сайт сделан по аналогии с известным западным порталом DelphiFeeds.com. В данный момент там собираются анонсы постов с 25 русскоязычных Delphi-блогов.

Адрес: DelphiFeeds.ru

«Дженерики в Delphi 2009 для Win32» в виде PDF-ки


Перевод статьи «Дженерики в Delphi 2009 для Win32» доступен в PDF файле. За вёрстку спасибо Андрею Тишкину.

Скачать можно здесь, либо на домашней странице Sébastien Doeraene (поиск по фразе «PDF form»).

Сравнивая дженерики в C#, C++ и Delphi(Win32) (перевод)


Ну и, на сладкое, доступен перевод статьи Comparing C#, C++, and Delphi (Win32) Generics. Автор: Craig Stuntz.
Перевод выложен в TDelphi-блоге Алексея Тимохина: тынц.

Другой Open Source

Время на прочтение7 мин
Количество просмотров2.5K
Тогда никто этих слов не употреблял. Не уверен, что я тогда вообще знал их значение. Впервые о проекте Владимира Кладова «Key Object Library», или просто KOL я узнал еще до института, в одном из двух выпусков журнала «Программист», которые моя мама выписала мне в честь выезда на олимпиаду по программированию в область. Статья называлась «Кол в сердце… своей программы!» Кажется в том же выпуске журнала, я впервые узнал и о .NET. Тогда, такие непомерные требования к ресурсам казались чуть ли не диверсией софтверного гиганта против IT индустрии. (До сих пор вспоминаю лабораторную друга-однокурсника, состоящую из одной формочки, запускающуюся пол минуты на кафедре на железе Celeron 433 64мб ОП из под 98-й винды. Я на той машине еще в Diablo II без тормозов играл, когда задание на пару было выполнено :)
Читать дальше →

Точное время: измеряем, применяем

Время на прочтение12 мин
Количество просмотров40K
   Цель данной статьи – изложить, полученный в ходе работы над проблемой материал о способах максимально точного измерения времени и использования на практике этих способов, а также рассмотреть варианты управления чем-либо программным с максимально достижимой точностью.

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

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

   Программист, который уже пробовал разрабатывать различные прикладные приложения, например, связанные с передачей данных или с генерацией/анализом сигналов мог заметить, что все стандартные функции (sleep, beep, GetTickCount, таймеры) обладают большой погрешностью при работе с малыми значениями временного интервала.
Читать дальше →

Об «очевидном» и полезном или создание и уничтожение объектов Delphi

Время на прочтение2 мин
Количество просмотров7.2K
Когда читаешь о той или иной реализации механизмов ООП, то весьма забавно видеть, как та или иная конкретная особенность конкретного языка или библиотеки называется «очевидной». Особенно выделяется в этом отношении описание ООП в C++, в котором по факту реализация одна из самых непрозрачных и запутанных.
Так вот, я ничего не буду писать про очевидность, а расскажу про способ облегчить себе жизнь в критических точках жизненного цикла объектов, используя не «очевидные», но весьма полезные особенности реализации ООП в Delphi.

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

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