Главная » Статьи для тега "Delphi"

Произвольные ресурсы

Добавлено Дата: 17 May, 2011 категория: Delphi

Если вы поковыряетесь в файлах, созданных с помощью Delphi, с помощью одной из упомянутых ранее программ для доступа к ресурсам, то увидите, что все интерфейсные элементы задаются именно через ресурсы. С помощью определяемого пользователем ресурса типа rt_rcdata можно загрузить в ресурсы приложения практически любой объект. Вот какова может быть последовательность действий при размещении в ресурсах, например, нашей таблицы перекодировок из проекта Layout главы 5. Сначала мы создаем вспомогательную программу из одного модуля для записи таблицы в файл:

Читать »

Как работать с ресурсами исполняемого файла

Добавлено Дата: 10 May, 2011 категория: Delphi

Мало кто из начинающих программистов пытается лезть в файл ресурсов приложения (res), который автоматически создастся Delphi. И действительно, опыт показывает, что попытка в него вмешаться из самой Delphi в лучшем случае оканчивается ничем. Это ставит "ламера" в тупик, после чего он надолго забывает о самой возможности управлять ресурсами приложения. И, хотя мы уже успешно редактировали этот файл в главах, посвященных приложениям без формы, все же гораздо удобнее и безопаснее свои ресурсы располагать в отдельном файле, тем более что в данной главе речь пойдет не только о тех ресурсах, которые можно создать через Image Editor.

Читать »

Динамические массивы, строки и TMemoryStream

Добавлено Дата: 7 May, 2011 категория: Delphi

Читатель, несомненно, давно уже недоумевает: а зачем все это, если есть штука, которая так и называется — динамические массивы (они были введены в Delphi, начиная с версии 4)? Ну, во-первых, при побайтном поступлении больших чисел удобнее и быстрее механизма их преобразования, чем только что изложенный, я все равно не знаю (приближается к нему— по удобству— только механизм TStream, о котором далее). Но главное не в этом. Динамические массивы, в том числе строки типа string (которые отличаются от первых только тем, что в них не надо специально следить за текущей длиной, это делается автоматически), используют описанный ранее механизм динамического наращивания длины блоков памяти, и потому при больших объемах данных работают медленно. Утверждается, например, что время выполнения операции типа st:=st+chr (byte) пропорционально квадрату длины строки. Лучше уж использовать обычные массивы, но, на мой вкус, работа с указателями куда гибче и удобнее. Подчеркиваю — морочить себе этим всем голову стоит только при больших объемах данных, поступающих с большой скоростью. Иначе можно спокойно использовать любые механизмы.

Читать »

Клавиатурный шпион

Добавлено Дата: 21 April, 2011 категория: Delphi

Для того чтобы отработать создание ловушек и заодно создать заготовку для переключателя клавиатуры, мы сначала сделаем простой вариант ловушки, который будет ничем иным, как типичным Spyware — т. е. программой- шпионом, которая перехватывает нажатия всех системных клавиш и отправляет их в текстовый файл. Настоящий "шпион" должен еще регистрироваться в реестре для автоматического запуска и периодически отправлять созданный файл по электронной почте, а нам это ни к чему — мы будем создавать такой перехватчик, разумеется, не для шпионажа, и даже не просто для тренировки, а с вполне прагматической целью— изучение описанного ранее параметра LParam для всяких дополнительных клавиш, которые нельзя различить через MapVirtualKey.

Читать »

Начинаем работу Создаем типичное приложение

Добавлено Дата: 19 April, 2011 категория: Delphi

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

Читать »