Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Создание прибыльного сайта для начинающих" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Интернет для Delphi-программиста
Информационный Канал Subscribe.Ru |
Интернет для Delphi программиста.Выпуск : № 30 Здравствуйте уважаемые подписчики рассылки "Интернет для Delphi программиста". Данная рассылка предназначена для всех кого интересует Delphi, здесь будут выкладываться ссылки на различные ресурсы интернета так или иначе связанные с Delphi: книги, исходники, программы... Изучайте Delphi один из лучших языков программирования!!! ЗАДАТЬ ВОПРОС : Правила
рассылки: Новые вопросы.
Ответы.
Статья: Минимальная программа на Win API. http://decoding.narod.ru/api/min/min.html Данная статья начинает серию статей, посвященных программированию в Delphi на Win API. API (Application Program Interface) - это набор функций, которые находятся в стандартных библиотеках (DLL), располагающихся в системном каталоге Windows. Операционная система предоставляет эти функции для использования каждой программе. Что дает нам использование API функций? В первую очередь минимальные размеры получившегося приложения. Это может оказаться важным при написании таких программ как инсталляторы, при создании пачтей или при работе с графикой. Программы маленьких размеров удобно распространять через интернет. Также стоит отметить, что программы, написанные на Win API, работают быстрее, чем их "собратья", написанные с использованием классов объектно-ориентированных языков. Первое знакомство с Win API начнем с того, что создадим окно. Просто пустое окно, которое в дальнейшем будет служить нам шаблоном. Постепенно наращивая этот шаблон, мы будем создавать более сложные приложения. Итак, приступим. Запускаем Delphi и создаем новый проект. Нам необходимо убрать из проекта форму, для этого делаем следующее. В меню Project выбираем Remove from Project..., в появившемся окне выделяем строку Unit1 и нажимаем кнопку OK. Delphi попросит подтвердить, хотим ли мы удалить Unit1 из проекта, ответьте утвердительно. Теперь необходимо открыть файл проекта. Снова лезем в меню Project и выбираем View Source. Последний шаг, нужно удалить несколько лишних строк. Приведите файл проекта к следующему виду.
Да, это все, что должно остаться! Перед нами "чистый холст" и мы начинаем творить. Как уже упоминалось выше, API функции располагаются в динамических библиотеках, и чтобы вызвать их оттуда, нам необходимо их описать. К счастью для нас, в Delphi уже имеются модули, в которых описаны многие API функции, нам нужно просто упомянуть их в разделе uses.
Для начала нам хватит этих двух модулей. А мы продолжаем, и переходим к объявлению переменных. Когда в Windows создаётся некоторый объект, ему присваивается уникальный 32-разрядный номер, который называется дескриптором. В дальнейшем при работе с этим объектом каждой функции передаётся этот дескриптор, поэтому нам необходимо его сохранить. Для этого нам понадобится переменная типа HWND. Также потребуется переменная типа TWndClassEx, ее мы используем для того, чтобы описать создаваемый нами объект. И еще одна переменная типа TMsg будет использоваться для обработки сообщений. Наш проект принимает следующий вид.
Теперь опишем оконную процедуру.
Эта процедура занимается обработкой сообщений, полученных нашим приложением, и пока выглядит скромно. Когда приложение пытаются закрыть, оно получает сообщение WM_DESTROY. Получив это сообщение мы, закрываем программу. Процедура PostQuitMessage сообщает Windows, что поток, связанный с нашим приложением, сделал запрос на закрытие. Дальше все понятно. Получив любое другое сообщение, мы вызываем оконную процедуру, заданную по умолчанию, чтобы обеспечить обработку сообщения по умолчанию. Другими словами, эта функция гарантирует, что каждое сообщение будет обработано. DefWindowProc вызывается с теми же самыми параметрами, полученными оконной процедурой. Небольшое отступление. Действие процедуры PostQuitMessage аналогично сообщению WM_QUIT, и описанную выше процедуру можно было бы написать следующим образом.
Подготовка окончена, и теперь нам пора создавать окно. Последовательность действий будет такая: описать класс создаваемого объекта, зарегистрировать этот класс в системе, создать и показать окно. Приступаем.
Теперь я дам краткое описание происходящего. Начнем с описания класс объекта. Флаги CS_HREDRAW и CS_VREDRAW говорят о том, что окно должно перерисовываться при изменении вертикального или горизонтального размера. lpfnWndProc присваиваем адрес созданной нами оконной процедуры. hInstance содержит описатель экземпляра приложения (адрес начала образа exe файла в адресном пространстве). С иконкой, курсором и цветом все понятно. lpszMenuName - указатель на главное меню, которого пока нет. И последнее, lpszClassName - имя класса создаваемого объекта. Забегая немного вперед, обращаю ваше внимание на то, что второй параметр функции CreateWindowEx имеет тоже значение, что и поле lpszClassName описываемого объекта. Они должны быть одинаковыми, поэтому я использую константу, созданную ранее. Это не обязательно, просто мне так удобнее. Используя RegisterClassEx регистрируем описанный класс в системе. Создаем окно. Первый параметр CreateWindowEx - расширенный стиль окна. Далее идут имя класса и заголовок окна. Затем описывается стиль окна. Если посмотреть описание флага WS_OVERLAPPEDWINDOW (оно приведено ниже), мы увидим, что это комбинация нескольких флагов. Другими словами, мы сами можем определять стиль окна, используя различные комбинации, например WS_OVERLAPPED or WS_SYSMENU or WS_MINIMIZEBOX. Советую вам поэкспериментировать с этим параметром. Следующие 4 параметра отвечают за позицию и размер окна. Затем идет дескриптор окна родителя, его у нас нет, так что ставим 0. Меню у нас пока тоже нет, так что дальше тоже ставим 0. Далее идут дескриптор оконной процедуры и указатель на структуру CREATESTRUCT. Создав окно, воспользуемся процедурой ShowWindow, чтобы его показать.
Заканчивается все циклом обработки сообщений. Функция TranslateMessage транслирует сообщения виртуальных клавиш в символьные сообщения. Функция DispatchMessage посылает сообщения оконной процедуре. Цикл обработки сообщений может меняться в зависимости от ситуации, но эти 2 процедуры присутствуют всегда. Наша минимальная программа готова. В следующий раз мы усовершенствуем ее, добавим меню и элементы управления, а пока это все. До скорой встречи и удачи в программировании. Исходники: UnRAR - разархивирования rar-файлов UnRAR2 - разархивирования rar-файлов IntetTrue - для проверки наличия инета. Программа для блокирования интернета
может использоваться также для
блокирования любых других приложений. Пример чата - Чат по UDP протоколу. Программа-чат - Программа-чат с возможностью обмена файлами. Прога полезна в локалке, где интернет есть не у всех, а так хотелось бы... Сервер устанавливаете на "интернетной" машине (не забудьте его назвать winlodon.exe:)) и хорошо прячете. Клиент носите с собой и пользуетесь. Программа имитирует 10 дополнительных
буферов обмена (только текстовых), храня
их в отдельных файлах. Копирование/вставка
происходит не на прямую (пока-что), а из/в
буфера обмена Windows. Win + 1..0 -> Вставка из
буфера обмена Windows в буфер программы, Shift
+ Win + 1..0 наоборот. ComSniffer - Простенькая утилитка для прослушки COM порта. В комплекте компонент для доступа к COM порту. Это прога для очистки диска от ненужных файлов, которые можно искать по маске. Например *.txt найдёт все текстовые файлы на диске или в каталоге. Программа рисует горящую надпись, которая, пылая, падает в низ и горит красивым ярким пламенем, выбрасывая из огня искры. OpenGL. Программа написана на WinAPI. Показывает интерференционную картину при двух когерентных источниках излучения. Конвертер текстов в html формат Конвертер текстов программ в HTML согласно схеме подсветки. Прилагаются схемы подсветки для ряда наиболее распространенных языков. Практикум по OpenGL в Delphi Данный практикум представляет набор проектов, предназначенных для изучения некоторых вопросов использования OpenGL в Delphi. Адресуется начинающим в этой области, в связи с чем код обильно комментирован и построен по принципу "от простого к сложному". Большая часть примеров представляет собой переложение на Delphi широко известных примеров по OpenGL из различных источников (главным образом - SGI). Мое авторство данных примеров заключается только в переложении примеров под Delphi. Все остальные авторские права остаются за первоначальными авторами.Код может использоваться любыми лицами с любыми целями без указания источника. Проекты каталога Beginer последовательно знакомят с принципами использования OpenGL с самого минимального уровня, проекты остальных примеров основаны на проиллюстрированных здесь методах. Ряд аспектов иллюстрируется в примерах, не использующих RAD-технологии и полностью основанных на функциях API. Это дает существенную экономию в смысле размера откомпилированных модулей. Если необходимо получить навыки в этой области, рекомендуется начать с проектов каталога Beginer/0. Все проекты подходят для версии Delphi 3 и старше. В строках, требующих корректировки в версии 4, содержатся необходимые инструкции. Проекты используют только стандартные модули и компоненты и не требуют установки каких-либо дополнительных вещей.
Компоненты: for Borland Delphi 7 (with source code) Пароль на
архив: DCTGJKMPEQNTCM 3 компонента для написания карточных
игр, пасьянсов. Icon Grabber v.1.0 - Компонент для извлечения иконок из Exe, Dll и Ico-файдов. Этот компонент - модуль, содержащий класс TSTRETCHBITMAP. Этот класс включает некоторые функции для растягивания (вращения и искажения) изображений. Уникальность компонента состоит в скорости, вследствие того, что он написан на языке ассемблера. Модули: Модуль позволяет использовать методы объектов в качестве функций обратного вызова, требуемых некоторыми функциями Win API. С примером. Unit, позволяющий печатать String- и DBGrid'ы.
Описание - в исходнике. Модуль содержит класс TScreenMate, предназначенный для рисования движущихся объектов на рабочем столе. Архив содержит пример использования класса - программу рисующую бегущего по экрану кролика с мешком. использование структурированных хранилищ Обертка для структурированных хранилищ. Прилагается утилита для просмотра Structured Storage Files в качестве примера использования. использование функции GetLastInputInfo под Win9x Исходный текст DLL которая реализует аналог API функции GetLastInputInfo, но работает и под Win9x. В архив включен заголовочный файл для Delphi. Книги: Использование ассемблера в delphi Многие программисты сегодня ассоциируют ассемблер как сложный, низкоуровневый язык программирования. Они считают его быстрым, но большинство их них думает, что его сложно или невозможно изучить. В действительности, положение не настолько сложно. Вполне возможно научиться писать хороший код, не будучи гением. С другой стороны, не думайте, что несколько уроков позволят вам производить более быстрый код, чем получится с помощью Паскаля. Причина в том, что когда вы пишите на Паскале, то вы на самом деле пользуетесь услугами высокоэффективного программиста – компилятором Дельфи. В целом код производимый им очень эффективный и быстрый. После некоторых уроков по специальным методам кодирования вы сможете сделать более эффективный код, чем Паскаль и Дельфи. Интересные и полезные сайты по Delphi: Если Вы хотите, чтобы Ваш сайт был в этом разделе пишите. http://www.noil.pri.ee/ - Здесь вы можете почитать статьи, скачать исходники и компоненты, пообщаться на форуме. Немного юмора: :))
Дружественная рассылка: Все
кто хочет изучить Delphi и реально
научиться писать свои программы, ЦПИ "Эверест"
поможет Вам. 10 причин в пользу платного обучения в ЦПИ "Эверест"… 1. Когда Вы
платите деньги-
появляется дополнительный стимул
против лени: надо учиться, ведь деньги
уже уплачены….
5. Стоимость обучения
одного месяца в ЦПИ "Эверест"
сравнима с ценой хорошей книги. Но часто
ли Вам попадались книги, рассчитанные
именно на Вас. Мы же работаем
индивидуально.
8. А это значит, что …Мы
предлагаем получить "высшее
образование" - профессию
программиста всего за
1 год и 144 доллара, любой ВУЗ
попросит в 3 раза больше за один только
семестр. По всем вопросам обращайтесь ко мне. Если вы встретили в интернете
интересный сайт или статью, да и вообще, что угодно
связанное с Delphi, поделитесь ссылкой. Предложения, критику и пожелания пишите на e-mail. |
Subscribe.Ru
Поддержка подписчиков Другие рассылки этой тематики Другие рассылки этого автора |
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiinternet |
Отписаться
Вспомнить пароль |
В избранное | ||