Обновить
8K+

Delphi *

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

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

WebBrowser, заполнение поля типа file на Delphi

Время на прочтение5 мин
Охват и читатели3.8K
При работе с компонентом WebBrowser часто возникает необходимость заполнять поля форм на сайте. С обычными полями формы никаких проблем нету, для их заполнения существуют стандартные методы, а вот поле с типом file браузер упорно отказывается заполнять. Причина этому — защита пользователей. Если бы браузер позволил свободно подставлять в это поле путь к файлу на компьютере пользователя, тогда с помощью простенького JavaScript встроенного в страницу сайта можно бы было легко увести любой файл.

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

Домашняя электронная библиотека: MyHomeLib + FBD

Время на прочтение6 мин
Охват и читатели129K
Думаю, практически каждый любитель электронного чтения сталкивался с ситуацией, когда объем скачанных из сети книг увеличивается настолько, что найти в папке с ними нужную книгу становится сложнее, чем скачать ее заново. В этом случае многие пытаются систематизировать коллекцию, некоторые оставляют все как есть и продолжают скачивать все подряд в надежде когда–нибудь привести все в порядок, другие же просто перестают скачивать книги в надежде на то, что при необходимости все нужное найдется в интернете.

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

Сохранение истории изменений файлов

Время на прочтение2 мин
Охват и читатели11K
Наверняка почти каждый сталкивался с ситуацией, когда при разработки какого-либо проекта, Вы, случайно сохранили изменения в каком-либо файле по ошибке, и отменить действие — нельзя. Например, я однажды редактировал одну картинку в фотошопе, и при сохранении по невнимательности выбрал для сохранения совсем другой файл, навсегда переписав его. На перерисовку того файла было потрачено полтора часа, и все это из-за того, что делать резервные копии каждые 20 секунд вручную невозможно.

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

Такая программа была написана мною 2 года назад. Она не раз спасала мои проекты от разных случайностей, но вот совсем недавно я внес в нее несколько изменений, и сейчас презентую ее Вам.
Читать дальше →

Induc по-прежнему угроза для Delphi

Время на прочтение3 мин
Охват и читатели4.9K
Приветствую всякого на этой странице!

Сегодня мой товарищ увлекающийся, помимо всего прочего, разработкой 2D-игр на Delphi прислал мне очередную свою вещицу. Доверяй, но проверяй! — подумал я и по старой доброй традиции отправил файл на VirusTotal. Дождавшись результатов проверки желание побыстрее запустить игрушку как-то пропало… В некоторых ячейках таблицы результатов проверки красивым красным цветом было написано уже знакомое слово «Induc». Немного удившись отсутствию визга (ой, кажется, он так уже давно не делает) своего антивируса я пошёл разбираться. Но не с представителями антивирусной компании, а с устройством заражённого файла.
Читать дальше →

Отправка SMS с 3G/GSM модема

Время на прочтение7 мин
Охват и читатели220K
Привет Хабр. В данной статье я бы хотел поделиться опытом работы с GSM модемом, а точнее опытом отправки SMS сообщений. Ниже будет описана реализация программы на Delphi для отправки SMS сообщений, а так же чтение и удаление входящих/исходящих сообщений с модема. В моём случае это был модем HUAWEI от MTS. Всех кого заинтересовал, прошу под кат.
Читать дальше →

Выпуск RadStudio XE2, Delphi XE2 и других продуктов Embarcadero

Время на прочтение1 мин
Охват и читатели4.3K
image

Выпущены новые версии RadStudio, Delphi и других продуктов Embarcadero.

Заметные изменения:
  • 64-битный компилятор для Windows (8 лет спустя первого упоминания);
  • Кросс-платформерная библиотека визуальных компонентов «FireMonkey». Как я понял, она основывается на купленной в этом году библиотеке компонентов KsDev нашего соотечественника Евгения Крюкова (http://www.ksdev.com/). Заявлена поддержка iOS-устройств и Mac OS X;
  • API для работы с облачными сервисами Windows Azure, Amazon;
  • FastReport в качестве основного генератора отчётов (новость на сайте FastReport).


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

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

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

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


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

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

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

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

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

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

Время на прочтение4 мин
Охват и читатели6.2K

Введение


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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