KOL’ная диета для дельфийца

On

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

Dельфиний дZен №1 : Самомодифицирующийся код

On

Итак, чтобы долго тут не размусоливать, приведу маленький, но вполне рабочий пример самомодификации кода на Delphi. Компилировался пример на D7 со всеми настройками проекта по умолчанию (в частности оптимизация была включена). На всякий случай к исходникам приложил и бинарник, потому что вполне…

Перехват API функций в Delphi с помощью сплайсинга

On

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

Учимся программно создавать ярлыки

On

Иногда мне бывает необходимо, чтобы ссылка на мое приложение была в пункте контекстного меню «Отправить». Это меню можно вызвать сплошь и рядом, а значит, я смогу запустить свое приложение из любого места системы. Причем не просто запустить, а передать конкретный файл (ы)…

Функция для упрощения парсинга

On

Хотел бы представить общественности одну полезную функцию, которая упрощает процесс обработки информации. Сама функция и её описание находятся дальше.Исходный код (Delphi):Только кодкопировать в буфер обменапечатьfunction Pars(T_ : string; var ForS: string; _T: string): string; var a, b: Integer; begin if (T_ »)…

Работа с Microsoft Speech API в Delphi

On

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

Русификация ввода в консольных приложениях на Delphi

On

Решение задачи русификации консольных приложений с помощью модуля EsConsole Евгения Каснерика вполне симпатичное. Однако оно половинчатое: если запустить программку{$APPTYPE CONSOLE}uses EsConsole in ‘esconsole.pas’;var S: string[80];begin ReadLn(S); WriteLn(S); ReadLnend.и ввести строку кириллицы, то получим ту же проблему — на экране будет абракадабра, поскольку…

Динамические структуры данных

On

Что такое динамические структуры? Да просто данные, размер которых может меняться во время работы программы. В Delphi есть массивы, которые так и называются динамическими, есть строки. TStream тоже можно так назвать, его размер легко изменить в любой момент. Все замечательно, и очень…

Многострочность и StringGrid

On

Итак задача: требуется многострочный вывод в ячейку грида. Тут можно пойти двумя путями: первым и вторым, шучу. Можно сделать все капитально, на века, то есть создать свой компонент-наследник стандартного TStringGrid или воспользоваться встроенным обработчиком события TStringGrid.OnDrawCell. Начнем, как водится, с простого. Итак,…

Массив из элементов — как с ним бороться или как с ним дружить

On

Однажды я опубликовал на Мастерах статью, в которой создавались массивы из различных компонентов, вплоть до форм. Письма, полученные мною после опубликования, были посвящены зачастую не основной теме статьи, а вопросам по созданию массивов из объектов. Здесь я постараюсь ответить на задаваемые вопросы…