Сайт о телевидении

Сайт о телевидении

» » Indy delphi примеры. Пример работы с компонентами Indy UDP (server, client) на Delphi. Особенности создания многозвенных приложений

Indy delphi примеры. Пример работы с компонентами Indy UDP (server, client) на Delphi. Особенности создания многозвенных приложений

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

Итак - Fractorama. Freeware. Автор программы John F. Dumas работает разработчиком программного обеспечения, преподает и имеет степень в области прикладной математики. Интерфейс программы довольно лаконичен. Перед вами два окна. Первое - текстовой редактор, в котором нужно писать формулы, а второе предназначено для визуализации результата ваших трудов - собственного готового фрактала.
Давайте посмотрим на работы из галереи программы:





Как Вам? Мне напоминает сразу три программы, но выглядит очень симпатично.
Некоторые особенности программы Fract-O-Rama! (именно так её называет автор).
Все фракталы создаются с помощью фрактального языка сценариев Fract-O-Rama, который позволяет исследовать более широкий спектр фрактальных типов, чем ряд других фрактальных генераторов. Программа может работать как на win32, так и в среде Unix, в связи с тем, что была написана с использованием Qt. Поставляется с полным исходным кодом. В каждой из загрузок содержится документация и большое количество формул-примеров. Доступны разные варианты загрузки - выбирайте подходящий.
Если Вас заинтересовал процесс создания фрактала в этой программе, загляните в "About Us".
Здесь находится галерея: https://fractoramafractalart.com/
Страница проекта на deviantart http://fract-o-rama.deviantart.com/
Подведу итог. Перед нами любопытная программа, предназначенная для тех, кто знает программирование или хочет научиться. Трудно судить о состоянии проекта на сегодняшний день, поскольку последние фракталы в галерее датированы 2015-м годом. В любом случае, программа достойна внимания.

Наверное, сложно найти людей, которых бы не завораживало созерцание фрактальной графики - в ее таинственных элементах кому-то может представляться ночное пламя костра, кому-то - длинные плети колышущихся водорослей в толще воды, кому-то - целое таинство Вселенной.
Но так или иначе фрактальная графика однозначно притягивает наши взоры, а программные пакеты для ее создания могут стать той ступенькой, которая позволит приблизиться к настоящему фрактальному творчеству, тем более что все они сравнительно просты в освоении.
С использованием фракталов могут строиться не только ирреальные изображения, но и вполне реалистичные (например, фракталы нередко используются при создании облаков, снега, береговых линий, деревьев и кустов и др.). Поэтому применять фрактальные изображения можно в самых разных сферах, начиная от создания обычных текстур и фоновых изображений и кончая фантастическими ландшафтами для компьютерных игр или книжных иллюстраций. А создаются подобные фрактальные шедевры (равно как и векторные) путем математических расчетов, но в отличие от векторной графики базовым элементом фрактальной графики является сама математическая формула - это означает, что никаких объектов в памяти компьютера не хранится, и изображение (как бы ни было оно замысловато) строится исключительно на основе уравнений.
1. Программа Art Dabbler
Знакомство с основами фрактальной графики лучше всего начать с пакета Art Dabbler. Этот редактор (созданный фирмой Fractal Design, а теперь принадлежащий Corel) фактически представляет собой усеченный вариант программы Painter. Это отличная программа для обучения не только компьютерной графике, но прежде всего азам рисования. Малый объем требуемой памяти (для его установки необходимо всего 10 Мбайт), а также простой интерфейс, доступный даже ребенку, позволяют использовать его в школьной программе. Как и растровый редактор MS Paint, фрактальный редактор Art Dabbler особенно эффективен на начальном этапе освоения компьютерной графики.
Главное внимание разработчиками пакета Art Dabbler было уделено двум факторам:
  • созданию упрощенного интерфейса, основным элементом которого являются коробки инструментальных наборов (называемых здесь выдвижными ящиками);
  • возможности использования пакета в качестве обучающей программы. Для реализации этой цели в комплект поставки пакета наряду с самой программой включен самоучитель "Учись рисовать" и обучающий фильм на компакт-диске. Предлагаемые в них уроки рисования позволяют шаг за шагом наблюдать за процессом создания опытными художниками цветных изображений средствами пакета Art Dabbler.
Строка меню включает в себя шесть пунктов: стандартные для большинства программ - File, Edit и Help, а также Effects, Options и Tutors, которые присутствуют в большинстве графических программ и не нуждаются в дополнительных комментариях.
Art Dabbler предоставляет комплект эффектов (меню Effects), которые могут быть использованы для изменения или искажения изображений. Например, эффект Texturize создает текстуры бумаги, холста и т.п., расширяя творческие возможности художника.
Следует отметить, что в Art Dabbler выдвижными ящиками называются все инструментальные средства точно так же, как, например, в Photoshop аналогичные средства называются палитрами, а в CorelDRAW - докерами. В них хранятся кисти, карандаши, резинка и другие инструменты, для активизации которых достаточно нажать соответствующую им пиктограмму. На передних стенках ящиков отображается небольшое количество кнопок и ручка, нажав которую пользователь получает доступ ко всему набору осуществляемых через него операций благодаря открывающимся дополнительным кнопкам.
Скачать
2. Программа Ultra Fractal
Ultra Fractal - лучшее решение для создания уникальных фрактальных изображений профессионального качества. Пакет отличается дружественным интерфейсом, многие элементы которого напоминают интерфейс Photoshop (что упрощает изучение), и сопровождается невероятно подробной и прекрасно иллюстрированной документацией с серией туториалов, в которых поэтапно рассматриваются все аспекты работы с программой. Ultra Fractal представлен двумя редакциями: Standard Edition и расширенной Animation Edition, возможности которой позволяют не только генерировать фрактальные изображения, но и создавать анимацию на их основе. Созданные изображения можно визуализировать в высоком разрешении, пригодном для полиграфии, и сохранить в собственном формате программы или в одном из популярных фрактальных форматов. Визуализированные изображения также могут быть экспортированы в один из растровых графических форматов (jpg, bmp, png и psd), а готовые фрактальные анимации - в AVI-формат.
Принцип создания фрактальных изображений достаточно традиционен, самое простое - воспользоваться одной из прилагаемых в поставке формул (сориентироваться относительно возможного вида генерируемого по выбранной формуле изображения поможет встроенный браузер), а затем подредактировать параметры формулы желаемым образом. А если эксперимент оказался неудачен, то последние действия легко отменить. Готовых фрактальных формул очень много, и число их может быть расширено путем скачивания новых формул с сайта программы. Подготовленные пользователи могут попытать счастья и в создании собственной формулы, для чего в пакете имеется встроенный текстовый редактор с поддержкой базовых шаблонов, основанных на стандартных конструкциях языка программирования фрактальных формул.
Однако не стоит думать, что таинство фрактального изображения кроется лишь в удачной формуле. Не менее важны и иные аспекты. Например, цветовая настройка, предполагающая выбор варианта окраски и точную настройку ее параметров. Настройка цвета реализована на уровне солидных графических пакетов, например градиенты можно создавать и настраивать самостоятельно, корректируя множество параметров, включая полупрозрачность, и сохранять их в библиотеке для дальнейшего использования. Применение слоев с возможностью изменения режимов их смешивания и корректировкой полупрозрачности позволяет генерировать многослойные фракталы и за счет наложения фрактальных изображений друг на друга добиваться уникальных эффектов. Использование масок непрозрачности обеспечивает маскирование определенных областей изображения. Фильтры трансформации позволяют выполнять в отношении выделенных фрагментов изображения разнообразные преобразования: масштабировать, зеркально отражать, обрезать по шаблону, искажать посредством завихрения или ряби, размножать по принципу калейдоскопа и т.д.
Скачать
3. Программа Fractal Explorer


Fractal Explorer - программа для создания изображений фракталов и трехмерных аттракторов с достаточно впечатляющими возможностями. Имеет интуитивно понятный классический интерфейс, который может быть настроен в соответствии с пользовательскими предпочтениями, и поддерживает стандартные форматы фрактальных изображений (*.frp; *.frs; *.fri; *.fro; *.fr3, *.fr4 и др.). Готовые фрактальные изображения сохраняются в формате *.frs и могут быть экспортированы в один из растровых графических форматов (jpg, bmp, png и gif), а фрактальные анимации сохраняются как AVI-файлы.
Генерация фракталов возможна двумя способами - на основе базовых фрактальных изображений, построенных по входящим в поставку формулам, или с нуля. Первый вариант позволяет получить интересные результаты сравнительно просто, ведь выбрать подходящую формулу несложно, тем более что удобный файловый браузер позволит оценить качество фрактала из базы еще до создания на его основе фрактального изображения. У полученного таким путем фрактального изображения можно сменить цветовую палитру, добавить к нему фоновое изображение и определить режим смешивания фрактального и фонового слоев, а также степень прозрачности фрактального слоя. Затем можно будет подвергнуть фрактальное изображение трансформации, при необходимости масштабировать, определить размеры изображения и провести рендеринг. Создание изображения с нуля гораздо сложнее и предполагает выбор одного из двух способов. Можно выбрать тип фрактала почти из 150 вариантов. А затем уже перейти к изменению разнообразных параметров: настройке палитры, фона и пр. А можно попробовать создать свою пользовательскую формулу, воспользовавшись встроенным компилятором. Перед рендерингом готового изображения может потребоваться проведение автоматической коррекции цветового баланса и/или ручной коррекции яркости, контрастности и насыщенности.
Скачать
4. Программа ChaosPro
ChaosPro - один из лучших бесплатных генераторов фрактальных изображений, с помощью которого нетрудно создать бесконечное множество удивительных по красоте фрактальных изображений. Программа имеет очень простой и удобный интерфейс и наряду с возможностью автоматического построения фракталов позволяет полностью управлять данным процессом за счет изменения большого количества настроек (число итераций, цветовая палитра, степень размытия, особенности проецирования, размер изображения и др.). Кроме того, создаваемые изображения могут быть многослойными (режимом смешивания слоев можно управлять) и к ним можно применить целую серию фильтров. Все накладываемые на строящиеся фракталы изменения тут же отражаются в окне просмотра. Созданные фракталы могут быть сохранены в собственном формате программы, либо в одном из основных фрактальных типов благодаря наличию встроенного компилятора. Или экспортированы в растровые изображения или 3D-объекты (если предварительно было получено трехмерное представление фрактала).
В списке возможностей программы:
  • точная цветовая настройка, обеспечивающая плавные градиентные переходы цветов друг в друга;
  • одновременное построение нескольких фракталов в разных окнах;
  • возможность создания анимации на основе фрактальных изображений с определением ключевых анимационных фаз, которые могут отличаться по любому изменяемому параметру: углам поворота и вращения, цветовым параметрам и пр.;
  • создание трехмерных представлений фракталов на основе обычных двумерных изображений;
  • поддержка многих стандартных форматов фрактальных изображений, изображения в которых могут быть импортированы и отредактированы в среде ChaosPro.
Скачать
5. Программа Apophysis
Apophysis - интересный инструме
нт для генерации фракталов на основе базовых фрактальных формул. Созданные по готовым формулам фракталы можно редактировать и неузнаваемо изменять, регулируя разнообразные параметры. Так, например, в редакторе их можно трансформировать, либо изменив лежащие в основе фракталов треугольники, либо применив понравившийся метод преобразования: волнообразное искажение, перспективу, размытие по Гауссу и др. Затем стоит поэкспериментировать с цветами, выбрав один из базовых вариантов градиентной заливки. Список встроенных заливок достаточно внушителен, и при необходимости можно автоматически подобрать наиболее подходящую заливку к имеющемуся растровому изображению, что актуально, например, при создании фрактального фона в том же стиле, что и иные изображения некоего проекта. При необходимости несложно подрегулировать гамму и яркость, изменить фон, масштабировать фрактальный объект и уточнить его расположение на фоне. Можно также подвергнуть результат разнообразным мутациям в нужном стиле. По окончании следует задать размеры конечного фрактального изображения и записать его визуализированный вариант в виде графического файла (jpg, bmp, png).
Скачать
6. Программа Mystica
Mystica - универсальный генератор уникальных фантастических двумерных и трехмерных изображений и текстур, которые в дальнейшем можно использовать в разных проектах, например в качестве реальных текстур для Web-страниц, фонов Рабочего стола или фантастических фоновых изображений, которые могут быть задействованы, например, при
оформлении детских книг. Пакет отличается нестандартным и достаточно сложным интерфейсом и может работать в двух режимах: Sample (ориентирован на новичков и содержит минимум настроек) и Expert (предназначен для профессионалов). Создаваемые изображения могут иметь любой размер и затем экспортироваться в популярные графические 2D-форматы. Прямо из окна программы их можно отправить по электронной почте, опубликовать в Html-галерее или создать на их основе видеоролик в форматах divx, mpeg4 и др. Встроенный трехмерный движок программы может быть использован при создании трехмерных сцен для компьютерных игр, например фантастических фонов и ландшафтов.
Генерация изображений осуществляется на основе заложенных в пакете фрактальных формул, а система подготовки изображения многоуровневая и включает очень подробную настройку цветов, возможность простейших трансформаций генерируемых элементов и массу прочих преобразований. В их числе применение фильтров, изменение освещения, корректировка цветовой гаммы, яркости и контрастности, изменение использованного при генерации материала, добавление к изображению "хаотических" структур и пр.
Скачать
Фрактальные изображения применяются в самых разных сферах, начиная от создания обычных текстур и фоновых изображений и кончая фантастическими ландшафтами для компьютерных игр или книжных иллюстраций. Создаются фрактальные изображения путем математических расчетов. Базовым элементом фрактальной графики является сама математическая формула - это означает, что никаких объектов в памяти компьютера не хранится, и изображение строится исключительно на основе уравнений.
Таинство фрактального изображения не кроется лишь в одной удачной формуле. Не менее важны и иные аспекты. Например, цветовая настройка, фильтры трансформации и др.
Существует очень много программ по созданию фрактальных изображений. Эти программы имеют свои достоинства и недостатки. С развитием технологий количество программ увеличивается, а их качество и возможности улучшаются.

Основные генераторы фракталов

Доброго времени суток, дорогие любители фракталов!

Меня часто спрашивают с какой программы лучше начать изучение фрактальной графики. Ответа на этот вопрос нет. Вы должны сами решить какие фракталы вам нравятся и начинать изучение, именно, с той программы которая делает понравившиеся вам фракталы.

В этой теме я немного расскажу о своих впечатлениях от работы с разными программами, а также скажу где их можно скачать.

Fractal Explorer.

На мой взгляд самая лёгкая программа, как в изучении, так и по весу. Очень удобный интерфейс, вы практически сразу видите как меняется ваша картинка. Но не смотря на то, что программа лёгкая, в ней получаются очень интересные фракталы. Программа часто приподносит сюрпризы. Главное разглядеть эти сюрпризы.

Суть работы с программой Fractal Explorer сводится к тому, чтобы найти интересный элемент в малопривлекательной картинке.

Вот маленький пример, что было сначала и что из этого получилось

И ещё несколько фракталов сделанных в этой программе

Если вам нравятся фракталы сделанные в этой программе, скачать её можно с Я.Диска . Программа бесплатная.

Для примера несколько работ, сделанных в программе Apophysis

JWildfire.

Программа очень похожа на Apophysis только с бОльшими возможностями. В ней можно работать со слоями, интереснее освещение и размытие. Заметила, что в последнее время многие переключаются, именно, на эту программу. В программу сразу установлены все плагины, в отличии от Apophysis.

Что мне не нравится? Программа сама генерирует, достаточно, симпатичные фракталы. С одной стороны в этом нет ничего плохого, с другой стороны, новички начинают лениться и выдают фракталы сгенерированные программой за свои...

Вот один из фракталов, который я делала в этой программе. Здесь три слоя

Теперь о грусном. Я могла бы сказать, что у программы нет недостатков. Но они есть, всего один, но существенный, Ultra Fractal - это условно-бесплатная программа. Скачать демо-версию можно на оф.сайте

Mandelbulb3D.

Программа для генерации 3D фракталов. Очень интересно. Можно создавать целые миры, при должном усердии и терпении. В программе много формул которые можно и нужно комбинировать. Также как в Fractal Explorer надо найти интересный элемент в малоинтересной, на первый взгляд картинке.

Вот маленький пример того что было и что из этого получилось

И ещё несколько картинок для наглядности

Программа бесплатная. Скачать её можно .

Если прогруляетесь по сайту на который я дала ссылку, то в галерее найдётё очень интересных работ.

У себя я нашла только одну работу сделанную в этой программе

Вот такой у меня получился небольшой обзор основных генераторов фракталов. Конечно, на самом деле их гораздо больше, но эти самые популярные и наиболее интересные, на мой взгляд.

На этом всё! Желаю творческих успехов!

Серж Досюков (Serge Dosyukov) Майк Фэм (Mike Pham)

В статье рассказывается о том, как создать автономную Web-службу, используя комплект Indy и Delphi 7 и как использовать комплект Indy для осуществления поддержки в Delphi 7 Web-служб на основе протокола SOAP. За дополнительной информацией о создании Web-служб рекомендуем обратиться к великолепной статье Ника Ходжеса (Nick Hodges) на сайте сообщества Borland: "Шекспир в сети" .

Рано или поздно может возникнуть необходимость создания сервера, который являлся бы автономным HTTP-сервером и осуществлял поддержку Web-служб. Например, может понадобиться создать сервер приложений на основе протокола SOAP для n-уровневого приложения, созданного с помощью Delphi.

Введение

Интерактивная справка Delphi предоставляет великолепную последовательную инструкцию о том, как создать Web-службу, MIDAS-сервер (COM, DCOM-модель), но в ней практически отсутствует информация о создании автономного n-уровневого MIDAS-приложения на основе протокола SOAP.

Ранее была опубликована Дэйва Нотажа (Dave Nottage). В этой статье была описана идея о том, как создать в Delphi 6 Web-службу с поддержкой SOAP и возможностью публикации SOAP-интерфейсов модуля Datamodule, то есть эта статья позволяла научиться создавать собственные n-уровневые MIDAS-системы.

Выпущенные компанией Borland Delphi 7 и новый комплект Indy обладают встроенной поддержкой такой функциональности.

Однако, несмотря на встроенную поддержку, документальное описание этой возможности отсутствует.

Недавние сообщения в сетевой конференции Borland и поиск в сети с помощью сервера Google, позволили авторам разработать способ преобразования существующего кода из Delphi 6 в Delphi 7. Но - всему свое время.

Основная идея

Данная статья является первой частью цикла из трех статей. В ней описываются основные положения. Вторая и третья части будут посвящены некоторым проблемам и способам их решения. Приступим к описанию основной идеи.

  • быть автономным HTTP-сервером;
  • использовать Indy в качестве платформы;
  • поддерживать публикацию по протоколу SOAP;
  • быть способным к публикации SOAP-модулей DataModules, что позволило бы создать собственный n-уровневый сервер на основе SOAP/HTML.

HTTP-сервер и SOAP

Многие знают Indy и использовали компоненты THTTPServer раньше. Несложно поместить этот компонент на форму приложения, но как заставить его поддерживать SOAP? В каталоге "C:Program FilesBorlandDelphi7SourceIndy" можно найти файл IdHTTPWebBrokerBridge.pas. Это как раз то, что нужно.

Этот файл не является частью исполняемого модуля Indy, поэтому нужно включить его в текущий проект в качестве стандартного проектного файла. (Для компиляции проекта также понадобится файл IdCompilerDefines.inc.) Данные файлы необходимо скопировать в каталог текущего проекта. Для увеличения скорости может потребоваться изменения кода, так что эти файлы лучше хранить отдельно от дистрибутива Indy.

Далее описывается реализация замещения компонента из THTTPServer, расширенного для поддержки пакетов SOAP и называющегося TIdHTTPWebBrokerBridge. Эта конструкция является классом, наследуемым от TCustomHTTPServer и поддерживающим базовую привязку запросов.

Так как этот класс недоступен из палитры, необходимо будет определить его как регулярный объект при выполнении программного кода.

Этот объект можно использовать точно таким же образом, как и обычный THTTPServer, за исключением тех дополнительных свойств, которые обеспечивают работу с SOAP.
Однако, сначала рассмотрим подготовку необходимого кода.

WebBroker и Indy

Тем, кому раньше приходилось создавать Web-службы, известно, что для этого используется WebBroker . Delphi 7, также как и Delphi 6, использует архитектуру WebBroker для поддержки SOAP.

Поэтому нужно создать модуль TWebModule и поместить в него следующие три компонента: THTTPSoapDispatcher, THTTPSoapPascalInvoker и TWSDLHTMLPublish. Все они доступны из вкладки WebServices палитры компонентов. После связывания SOAPDispatcher с SOAPPascalInvoker форма приложения готова. В качестве конечного результата должно получится нечто вроде того, что изображено на следующем рисунке:

(модуль uWebModule.pas)

Лучше все оставить как есть, так как нет необходимости изменять или исполнять какой-либо собственный код для данной формы.

WebModule и Indy

Перейдем к другой части кода, необходимой для реализации HTTP-сервера.

Как можно заметить TIdHTTPWebBrokerBridge обладает методом RegisterWebModuleClass, который позволяет зарегистрировать собственный модуль WebModule и сделать его доступным для сервера.

Таким образом, после создания серверного объекта fServer, нужно просто вызвать класс fServer.RegisterWebModuleClass (TwmSOAPIndy).

Примечание. При обычной реализации TIdHTTPWebBrokerBridge объект TwmSOAPIndy будет создаваться каждый раз когда приходит запрос. Очевидно, что в этом нет необходимости. Поэтому класс можно модифицировать так, чтобы обеспечить перманентное создание данного объекта в течении времени пока существует объект Server. За дополнительной информацией рекомендуется обратиться к документации о реализации классов.

Готов ли сервер?