Kylix обзор kylix (delphi для linux)


Содержание

Kylix обзор kylix (delphi для linux)

Быстрая разработка приложений (RAD) для Linux

Borland Kylix 2 — первое средство быстрой разработки приложений (RAD) для Linux. Такие инструменты, как среда разработки, интерактивный отладчик, интуитивный визуальный дизайнер и набор компонент, интегрированные между собой, позволяют сделать разработку Linux-приложений быстрой и легкой.

Kylix 2: что нового?
Web-службы для Linux! Kylix 2 обеспечивает быструю разработку приложений с использованием технологий CORBA и Web Services для платформы Linux. Уникальная легкость создания Web-служб (Web Services) позволяет вам быстро трасформировать существующие приложения в web-систему. Интегрированная поддержка Apache дает вам возможность быстро создавать динамические web-приложения с доступом к базам данных. Совместимость с Borland Delphi 6 обеспечивает кросс-платфоменную разработку без ущерба функциональности, включая многозвенные системы на основе CORBA IIOP и SOAP. Возможность доступа к компонентам Enterprise JavaBeans, развернутым на Borland AppServer и высокоуровневые средства работы с XML позволяют вам создавать решения корпоративного уровня. Подробнее

Kylix 2 – самый быстрый путь создания приложений для Linux
С использованием визуальной среды разработки пользователи могут создавать сложные приложения быстрее, чем с помощью любого другого инструмента. Переход от прототипа к реализации становится намного быстрее благодаря уникальной комбинации визуальных инструментов, отладчика, компилятора, прекрасно настроенных для разработки Web и настольных приложений, а также приложений доступа к базам данных.

Ускоренная разработка Web-серверов на основе Apache
Компоненты NetCLX сочетают технологии разработки серверной части и приложений доступа к БД, позволяющие создавать масштабируемые Web-приложения, работающие с огромными объемами данных и огромным количеством пользователей.

Internet-разработка
Легкая интеграция функций поддержки HTTP, FTP, SMTP и NNTP в приложения обеспечена с помощью Nevrona’s Indy Internet Component Suite. Этот удобный набор содержит более 65 готовых к использованию компонент, поддерживающих стандартные Internet-протоколы.

Доступ к базам данных
Borland Kylix предлагает возможность легкого доступа к данным с помощью dbExpress – на основе высокоскоростных драйверов для Oracle, DB2, InterBase, MySQL. Создавайте приложения с помощью богатого набора GUI-компонент. Оптимизируйте производительность с помощью компоненты тестирования и отладки SQL Monitor. Увеличьте скорость отклика сервера с помощью Cached Updates.

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

Мощь компонентной разработки на основе CLX
Компонентная библиотека CLX для кроссплатформенной разработки содержит более 165 повторно используемых, настраиваемых и расширяемых компонент для быстрой разработки Internet-, GUI-приложений и приложений доступа к базам данных. Используйте открытый исходный код CLX для построения собственных компонент или реиспользования и расширения базовых компонент для дальнейшего ускорения процесса разработки.

Delphi-разработка для Linux
Delphi-разработчики могут сразу начать создавать приложения для Linux с помощью Kylix. Используйте ту же самую знакомую визуальную drag-and-drop среду разработки. Kylix содержит тот же набор инструментов – включая Form Designer, Object Inspector, отладчик и компилятор. Даже CLX, новая компонентная библиотека, создана на основе Delphi VCL. Поэтому приложения, созданные в Delphi, могут быть перенесены на Linux, с минимальными изменениями. Сочетайте Delphi и Kylix для использования одного набора инструментов и одного базового кода для разработки кросс-платформенных Linux/Windows приложений.

Создавайте надёжные приложения
Процесс поиска и исправления ошибок даже в самых сложных проектах никогда не было проще, чем с помощью Borland Kylix. Продвинутый отладчик позволяет понимать и контролировать поведение кода – для отслеживания процесса отладки используются breakpoint-точки, Kylix’s Debug Inspector для мониторинга состояния компонент, Event Log для вывода сообщений процесса отладки и многое другое.

Контроль разработки и выполнения крупных проектов
Borland Kylix позволяет создавать, отлаживать и контролировать крупные проекты с множеством независимых исходных файлов. Продвинутый многоцелевой Project Manager упрощает контроль содержания, настроек компилятора, каждого модуля проекта. Debug Inspector служит для мониторинга состояния компонент, Code Explorer – для навигации по коду, Hyperlinks и History Lists – для переходов по исходному тексту.

MyBase – персональная XML-СУБД
MyBase – небольшой локальный XML-механизм с высокой производительностью, гибким обменом данными, и простыми, не требующими конфигурирования, настройкой и использованием. MyBase предлагает прозрачные масштабирование и миграцию данных из любой и в любую из поддерживаемых Kylix реляционных СУБД. MyBase поддерживает все популярные типы данных, включая BLOB, синтакс ANSI 92 SQL и многое другое.

Royaltee-free использование приложений
Приложения, созданные с помощью Kylix, свободны от любых runtime-лицензий и могут выполняться на любых минимально сконфигурированных Linux-системах.

Сохраняйте время и избегайте ошибок с помощью CodeInsight
Kylix CodeInsight позволяет значительно сократить время разработки и избежать ошибок во время процесса кодирования. Code Parameter Wizard автоматически отражает подсказки для процедур, методов и параметров.

Минимальные системные требования

  • Intel Pentium 200 MHz (рекомендуется 400 MHz)
  • 64 Mb RAM (рекомендуется 128 Mb)
  • CD-ROM
  • 175 Mb дискового пространства
  • VGA-монитор

  • Мышь

    Поддерживаемые реализации Linux:

  • Red Hat 6.2 и выше
  • Mandrake 7.2 и выше
  • SuSE 7.0 и выше

    Приобести продукт можно в компании Interface Ltd., являющейся одним из основных партнеров Borland в России.

    За дополнительной информацией обращайтесь в Interface Ltd.

    kylix на ubuntu 10.04

    07.09.2010, 10:22

    Регистрация Kylix 3
    народ ! выручайте (плиз-з-з-з. ) у кого есть рег.код?

    Kylix или винда
    народ, подскажите, на линуксе есть делфи что бы потом на винде проги шли? слышал про Kylix но не.

    Подойдет ли Kylix для Ubuntu или XP-2006?
    Я тут мыслю переходить дома на Linux, пота два вариант — Ubuntu или XP-2006 остюда вопрос — какой.

    Мультимедиа в Kylix
    Доброго времени суток! У меня есть написанный на VB.NET проигрыватель роликов swf и avi (под.

    Компиляция под Delphi 7 и Kylix
    Есть прога написаная на Delphi 7 как ее скомпильнуть под линух, но чтоб работала и подскажите.

    Delphi or Kylix 0

    Et cetera → Программирование

    Помогите пожалуйста разобраться.

    Можно ли в линуксе кодить на Дельфи?

    И чем Делфи отличается от Kylix’a?

    Можно ли в линуксе кодить на Дельфи?

    знакомые любители паскаля хвалят

    И чем Делфи отличается от Kylix’a?


    ну на C++ в нем кодить не реально, не работает по человечески, хотя очень похож.

    LedWorm [UnFaT]Помогите пожалуйста разобраться.

    Можно ли в линуксе кодить на Дельфи?

    И чем Делфи отличается от Kylix’a?

    Kylix это тет же Delphi только под Линух. Только пока он вроде не настолько развит и у библиотеки VCL возможностей больше чем в CLX.

    Сам Kylix пока не пробовал, но хочу…

    А я не пробовал и хочу никогда не пробовать! ;)

    myst
    А я не пробовал и хочу никогда не пробовать! ;)

    Попробовать нужно все! :-)

    Хотя по мне так тоже если под линукс писать, то тока на сях, хоть я это пока и не умею…

    Если всё пробовать, можно отравиться.

    Вы что, товарищи? Это же лишь инструменты. Пробовать все бессмысленно. Вы ставите себе цель и решаете ее. Неважно с помощью какого инструмента. Если всю жизнь занимались программированием на Паскале, то Kylix вам сам Бог послал!

    в никсах лучше С учить имхо

    я так и поступил

    в никсах много других полезных вещей…

    awk, perl, python, tcl/tk…

    и зачем пользоваться чем-то другим?

    разве что для бОльшей скорости…

    выбор есть всегда, другое дело что есть такая вешь как main stream.

    У меня как юзавшего Kylix и пишущего на Delphi сложилось неоднозначное впечатление о нем. С одной стороны — это большие удобства, он практически всем похож на Delphi, с другой стороны — для Линукса есть полно других, не менее удобных и быстрых языков программирования, начиная с простейшего bash-программирования, lisp …. К тому же они чаще обновляются. Kylix — неплохая среда, но я не знаю таких кто реально бы кодил на нем :(

    Поставила Kylix на первый взгляд как родная Delphi очень похожа на 6. Пока, что особых отличий не нашла.


    Kylix: кросс-платформенная разработка от Borland

    Тема сравнения Linux и Windows в последнее время весьма популярна. В прессе можно найти множество противоречивых мнений по поводу перехода с Windows на Linux. Но, как правило, все оппоненты сходятся на одном — недостаточное количество существующего ПО и сложность создания собственных приложений не позволяют так просто перейти на работу в Linux. Впрочем, Kylix, похоже, сможет изменить эту ситуацию в лучшую сторону.

    Кросс-платформенная разработка

    Слухи о новом проекте фирмы Borland ходили с июля 1999 года, когда на сайте компании появилась анкета, имевшая целью определить степень заинтересованности разработчиков в перенесении основных средств разработки приложений на платформу Linux. Затем Borland выставила список вакансий программистов с опытом работы в Linux для написания приложений на Delphi и C++. Официальное же подтверждение появилось 28 сентября, когда Borland опубликовала пресс-релиз, объявив о начале работы над Linux-версиями Delphi и C++ Builder.

    Kylix — первоначальное рабочее название нового проекта, позднее ставшее официальным именем. Цель этого проекта — перенести на платформу Linux широко признанные среды разработки Delphi и C++ Builder.

    На ежегодной конференции разработчиков BorCon 2000 представители Borland продемонстрировали альфа-версию Kylix. На глазах у толпы ожидающих чуда энтузиастов было создано приложение в среде Delphi. Затем этот код с небольшими изменениями был перекомпилирован с использованием Kylix для создания идентичного приложения под Linux. По словам очевидцев, оба приложения работали абсолютно одинаково.

    Можно ли с такой же легкостью перекомпилировать под Linux любое Delphi-приложение? Нет. Если в приложении используются прямые вызовы библиотек Win32 или библиотеки и компоненты третьих сторон, то потребуются соответствующие изменения. Представители Borland утверждают, что в среднем приложение, разрабатывавшееся в Delphi в течение полугода, можно будет адаптировать под Linux за месяц. Но даже несмотря на то, что не каждую программу легко пересобрать, Kylix в значительной степени облегчает и ускоряет процесс переноса Windows-приложений на платформу Linux.

    Кроме того, Borland привлекла к работе над проектом несколько компаний-разработчиков утилит и компонентов, чтобы обеспечить поддержку ПО от сторонних разработчиков к моменту выхода первой версии Kylix.

    Что может Kylix…

    Набор библиотек Kylix содержит не только улучшенный компилятор языка Pascal, а его интегрированная среда разработки (IDE) обеспечивает механизмы быстрой разработки приложений. Как следствие, в Kylix есть:

    • синтаксический разбор текста программы в редакторе;
    • интегрированный отладчик;
    • визуальное проектирование форм (окон приложений и диалогов);
    • визуальное проектирование систем меню;
    • расширяемая компонентная модель;
    • большой выбор визуальных компонентов и виджетов;
    • компоненты для интеграции со многими популярными SQL базами данных;
    • компоненты для работы с протоколами Интернета;
    • коммерческие и бесплатные библиотеки компонентов от сторонних производителей;
    • расширяемый набор design-time утилит для создания модулей для работы с сервером Apache и простых и сложных приложений баз данных;
    • коммерческие и свободно распространяемые утилиты от других производителей.
    Илон Маск рекомендует:  Что такое код ansinext

    Кроме того, нельзя не упомянуть, что среда разработчика в Kylix — вполне привычная, знакомая как собственно по Delphi, так и по другим продуктам фирмы Borland.

    … И чего не может

    Вы не мыслите процесса создания программы без собственноручного написания кода? Если вместо того, чтобы просто выбрать компонент и перетащить его на форму, вы предпочтете написать несколько сотен строк своего кода, то Kylix вряд ли придется вам по душе.

    Не пригодится Kylix и тем, кому необходимо писать модули для ядра Linux. Kylix не поддерживает расширения GNU, имеющие какую-либо связь с ядром Linux (в частности, имеет другой синтаксис для написания ассемблерных вставок).

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

    Как используется RAD

    Теперь вы знаете, для чего Kylix не приспособлен. Тогда что же в нем хорошего? Ответ — быстрая разработка приложений.

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

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

    В результате «быстрая разработка» означает, что при помощи Kylix можно будет создавать приложения гораздо быстрее, чем в традиционных для Linux средах, таких, как gcc, emacs, vi и gdb. А это, в свою очередь, резко упростит процесс создания прикладных программ и, следовательно, приведет к большему распространению Linux как универсальной операционной системы.

    Kylix предназначен не только для разработки графических интерфейсов. В его основе лежит расширяемая компонентная модель для работы с виджетами, компонентами доступа к базам данных, работы с сетью и т.д. Эта модель называется CLX (component library for cross-platform, «кликс»). До создания CLX основой Borland IDE была библиотека классов Delphi VCL (Visual Component Library).Подобно CLX, VCL включала функции обработки текста, ввода/вывода, даты и времени, управления файлами, доступа к данным и их визуализации, работы с графикой, сетями и т. д. Разница между CLX и VCL состоит в том, что функции VCL опираются на Windows API, а в CLX буквально все, что касалось Windows API, было переписано так, чтобы обойтись без него. Конечно, это было непросто, но результаты этой работы стали фундаментом для дальнейшего развития языков программирования, независимых от ОС.


    CLX можно легко расширить и дополнить. В настоящее время независимые разработчики уже создают компоненты в дополнение к стандартному набору.

    CLX состоит из нескольких частей:

    • BaseCLX содержит ядро компонентной модели. Сюда входят такие элементы, как функции работы со строками, ввода/вывода, функции работы с датой и временем, работа с файлами, обработка исключений.
    • VisualCLX, использующая библиотеку Qt компании TrollTech (http://www.trolltech.com/products/qt/qt.html) для создания графических интерфейсов.
    • DataCLX, использующая dbExpress — новый механизм фирмы Borland для работы с различными SQL-базами данных, включая Interbase (Borland недавно открыла доступ к его исходным кодам) и mySQL. DataCLX можно использовать в однозвенной архитектуре (база данных и приложение на одном и том же компьютере), архитектуре клиент-сервер или в многозвенной архитектуре. Причем dbExpress сначала будет реализован для CLX, а только потом для продуктов Borland, предназначенных для работы в Windows.
    • NetCLX предоставляет компоненты для работы с основными протоколами Интернета — TCP, FTP, HTTP и возможность писать клиентские и серверные программы с использованием модулей Apache. В Kylix технология Delphi WebBroker будет расширена за счет поддержки для Apache. Это означает, что приложения для Web-сервера можно будет писать как в форме CGI, так и в форме Apache DSO.

    Поскольку в CLX можно добавлять любые компоненты, ожидается появление большого числа компонентов от других компаний — производителей ПО. Существует множество Web-сайтов, распространяющих тысячи компонентов, которые можно добавить в Delphi для Windows. А после выхода в свет Kylix можно ожидать такого же изобилия новых компонентов. Поставщики утилит и компонентов для Delphi уже работают с бета-релизами Kylix, чтобы к моменту появления первой версии большинство компонентов было готово.

    Использование компонентов удобно для самых различных целей. Например, можно перетащить на форму компонент для POP3-клиента, добавить виджеты для отображения иерархии папок и списков сообщений в папках и окно отображения текста. Для связи всех компонентов на форме нужно добавить обработчики событий — а это ни что иное как методы соответствующих классов. Имея в своем распоряжении все возможности объектно-ориентированного языка (Delphi или C++), можно создавать обработчики событий любой степени сложности.

    Таким образом, меньше чем за день вполне реально написать небольшой, но действительно работающий почтовый клиент для Linux.

    Подход RAD имеет плохую репутацию в определенных кругах именно потому, что из-за использования инструментов и компонентов часто приходится создавать приложения с весьма ограниченными возможностями. Сама концепция быстрой разработки приложений предполагает большей частью визуальное проектирование и минимальные затраты сил на написание кода. А, как известно, серьезное программирование требует прежде всего самостоятельного написания кода.

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

    Открытая расширяемая среда разработки

    Kylix имеет расширяемую IDE; следовательно, если возможностей определенного инструмента недостаточно, разработчики могут добавлять в среду новые инструменты для разработки приложений. Например, и главное меню программы, и всплывающие меню — это компоненты. Они в свою очередь содержат компоненты пунктов меню. Редактируя сами компоненты меню, вы вряд ли добьетесь вразумительного результата, поэтому Kylix предлагает интерактивный редактор, позволяющий визуализировать процесс изменения меню. В Kylix также входят так называемые Мастера — для создания приложений баз данных, модулей Web-серверов и т.д. Открытость и расширяемость IDE позволяет компаниям — разработчикам ПО создавать дополнительные программы-Мастера, да и многие программисты сами способны написать такую программу.

    Некоторые утилиты требуют знания специальных языков расширений (например, Emacs Lisp). В Kylix можно использовать привычный язык программирования. Дополняйте Delphi IDE, используя Delphi, или C++ Builder — используя C++. Кроме того, можно дополнить Delphi новым Мастером, написанным в C++ Builder, или наоборот. Таким образом, разработчики могут использовать выбранный ими язык и распространять свои продукты среди всех пользователей Kylix.

    Вот несколько вариантов дополнений IDE Kylix. Вы можете добавить:

    • новые окна, например, редактор меню;
    • новые пункты в главное или всплывающие меню в редакторе программ, редакторе форм и т.д.;
    • новые кнопки в tool bars;
    • дизайнеры форм и проектов (для создания форм, проектов и других файлов по выбору пользователя).

    С другой стороны, если вы любите работать с командной строкой, если вам неудобно работать с редактором форм по принципу WYSIWYG и если вы предпочитаете самостоятельно отслеживать и отлаживать ошибки переполнения буфера, то продолжайте творить в той среде, к которой вы так привыкли. Работать в Delphi вы вряд ли сможете.

    И не только Delphi

    Как бы ни был хорош Pascal, иногда приходится работать и на C++, поэтому в будущие релизы Kylix предполагается включить C++ Builder для Linux. C++ Builder использует ту же IDE и компонентную модель, что и Delphi, но только с синтаксисом языка C++. Таким образом, если для разработки приложений для Windows компания Borland предлагает два независимых продукта, то для Linux все сведется к единому инструментарию. Заметим, что C++ Builder не поддерживает расширения GNU, т. е. перекомпилировать ядро Linux при помощи C++ Builder не удастся.

    Если вы во всем предпочитаете стандарты, C++ Builder может компилировать задачи в ISO-стандарте C++ и C. Вы можете скомпилировать любое приложение, основанное на стандартах ANSI/NISO, и, возможно, заметите, что компилятор C++ Builder для Linux работает быстрее, чем gcc или g++.

    Технические особенности

    Kylix изначально создавался для работы с разными дистрибутивами Linux. Без видимой разницы он может работать под управлением Red Hat, Mandrake, Caldera, Slackware или SuSE. Не играет роли для работы Kylix и графическая оболочка. Его можно установить и под KDE (рис. 1), и под GNOME (рис. 2).

    Рис. 1. Kylix для KDE.
    Рис. 2. Kylix для GNOME.

    Однако, первый релиз скорее всего будет под KDE, так как и Kylix, и KDE используют набор графических библиотек Qt компании TrollTech.


    Совместно с Trolltech фирма Borland создала компоненты графического интерфейса Kylix, не связанные с API C++, который используется в Qt. Приобретая Kylix, разработчик получает свободную лицензию на использование новых компонентов из библиотеки Qt. Эта лицензия распространяется на бесплатное, демонстрационное и коммерческое ПО, создаваемое в Kylix. Вам не придется дополнительно платить компании TrollTech за использование технологий Qt, лицензированных фирмой Borland, в отличие от ситуации, когда вы разрабатываете свои программы на базе непосредственно C++-API от Qt. Другими словами, покупая Kylix, вы получаете право разрабатывать и распространять бесплатное ПО, созданное с использованием библиотеки Qt.

    Первая версия Kylix будет компилировать приложения, создавая собственный код и стандартные бинарные файлы в формате ELF. Однако эта версия будет работать только на аппаратной платформе X86. Возможно, последующие версии Kylix будут поддерживать другие платформы; не исключено, что даже можно будет увидеть Delphi и C++ для других операционных систем.

    Kylix спасет мир?

    Сейчас Linux сталкивается с тремя серьезными проблемами на пути к широкому распространению в качестве операционной системы для ПК. Это: сложность установки, сложность использования и малое количество ПО. Kylix вполне может помочь в решении последних двух проблем.

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

    В принципе вы можете работать в любой удобной для вас среде — будь то Tcl/tk, Python или даже Qt либо Jx, имеющие некое подобие IDE. Что бы вы для себя ни выбрали — это есть в Kylix. Это и многое другое. Естественно, не все захотят работать в Kylix (разумеется, никто и не обязан). Но если вы цените свое время, если хотите использовать в работе удобный инструментарий и создавать хорошие приложения для Linux, вам стоит обратить свое внимание на Kylix.

    Первоначально Borland планировала выпустить первую версию Kylix к концу 2000 года. Но пока существует только бета-версия, доступная только компаниям — разработчикам компонентов и утилит. А выход первого релиза Kylix ожидается в марте.

    Другие статьи из раздела

    • Программная платформа IBM для повышения эффективности бизнеса
    • ИБП для защиты серверов
    • Интегрированное решение для защиты центров обработки данных
    • На пути к построению единой платформы защиты данных
    • Виртуализация без ограничений
    Илон Маск рекомендует:  Создание заставок для ваших программ

    Поместить в блог

    Комментарии к статье

    Рекламные ссылки

    Chloride
    Демонстрация Chloride Trinergy
    Впервые в России компания Chloride Rus провела демонстрацию системы бесперебойного электропитания Chloride Trinergy®, а также ИБП Chloride 80-NET™, NXC и NX для своих партнеров и заказчиков.

    NEC Нева Коммуникационные Системы
    Завершена реорганизация двух дочерних предприятий NEC Corporation в России
    С 1 декабря 2010 года Генеральным директором ЗАО «NEC Нева Коммуникационные Системы» назначен Раймонд Армес, занимавший ранее пост Президента Shyam …

    компания «Гротек»
    С 17 по 19 ноября 2010 в Москве, в КВЦ «Сокольники», состоялась VII Международная выставка InfoSecurity Russia. StorageExpo. Documation’2010.
    Новейшие решения защиты информации, хранения данных и документооборота и защиты персональных данных представили 104 организации. 4 019 руководителей …

    МФУ Panasonic DP-MB545RU с возможностью печати в формате А3
    Хотите повысить эффективность работы в офисе? Вам поможет новое МФУ #Panasonic DP-MB545RU. Устройство осуществляет


    Adaptec by PMC
    RAID-контроллеры Adaptec Series 5Z с безбатарейной защитой кэша
    Опытные сетевые администраторы знают, что задействование в работе кэш-памяти RAID-контроллера дает серьезные преимущества в производительности …

    Chloride
    Трехфазный ИБП Chloride от 200 до 1200 кВт: Trinergy
    Trinergy — новое решение на рынке ИБП, впервые с динамическим режимом работы, масштабируемостью до 9.6 МВт и КПД до 99%. Уникальное сочетание …

    Приложение Б Kylix — Delphi для Linux

    Kylix — Delphi для Linux

    В 2001 году компания Borland International, разработавшая Delphi, выпустила продукт под названием Kylix, Kylix— это среда быстрой разработки приложений для Linux. Интерфейсом она почти ничем не отличается от привычного Delphi, а язык программирования, который использует Kylix просто не может не радовать — это Object Pascal. Короче говоря, Kylix — это тот же Delphi, только для ОС Linux. Корпорация Borland предлагает два основных варианта Kylix: Kylix Desktop Developer и Kylix Server Developer. Наиболее полной версией по возможностям и функциональности является Kylix Server Developer.

    Существует возможность переносить программы из Delphi в Kylix (само собой, если у программ нет привязки к ОС — например, использования функций WinApi). Стоит сказать несколько слов о совместимости и переносимости исходных кодов программ с Delphi в Kylix. Как известно, в Delphi используется библиотека классов VCL. Для Kylix эта библиотека называется CLX (библиотека компонентов для кросс-платформенной разработки). Впрочем, они довольно совместимы, и в VCL присутствует почти полная поддержка библиотеки классов CLX.

    Еще одно небольшое отличие заключается в расширении файлов, содержащих описание форм. В Delphi эти файлы имеют расширение *.dfm, а в Kylix — *.xfm. Это не создает особых неудобств, просто в программах следует изменить директиву <$R .dfm>на <$R .xfm>.

    В Kylix, в отличие от Delphi, отсутствует возможность работы с базами данных BDE и ADO. Отсутствует поддержка ActiveX, COM и CORBA. Невзирая на все перечисленные недостатки и аспекты несовместимости с Delphi, Kylix является довольно удобной средой программирования. Тот кто программирует на Delphi, сможет перейти на Kylix без особых затруднений.

    Похожие главы из других книг

    Разработчик Delphi

    Разработчик Delphi Русскоязычные N Сервер Описание 1 http://www.inprise.ru Российское представительство Inprise Фирма – разработчик

    Массив в Delphi

    1.3.3. Delphi и CGI

    1.3.3. Delphi и CGI В данной главе я расскажу, как написать простое Дельфи CGI приложение, без использования Web Modules или других Client/Server модулей.Во первых аббревиатура CGI означает Common Gateway Interface, и это только имя для передачи информации от клиента серверу. На клиентской стороне это

    2.1.1. Delphi и HTML

    2.1.1. Delphi и HTML Мой главный инструмент разработчики это Дельфи, и мы напишем Delphi Database HTML Expert в данной главе. Дельфи позволяет подсоединяться практически к базе данных любого формата. С помощью BDE к Парадоксу и dBASE, с помощью ODBC например к Access, и с помощью SQL Links к большим DBMS типа

    Приложение А. Конфигурационные файлы Linux

    Приложение 1 Сайт «Королевство Delphi»

    Приложение 1 Сайт «Королевство Delphi» Эта книга появилась на свет благодаря сайту «Королевство Delphi» (http://www.delphikingdom.com), поэтому будет справедливо, если мы уделим ему здесь немного внимания. Тем более что этот сайт сам по себе интересен для программиста, использующего Delphi.

    Приложение Таблицы соответствия Windows- и Linux-программ

    9.3. Использование OLE в Delphi

    9.3. Использование OLE в Delphi Как и многие современные среды программирования, Delphi поддерживает возможность автоматизированной разработки приложений, работающих с различными СОМ-сервисами или серверами. Для более глубокого понимания принципов работы приложений,


    Delphi, Kylix и Borland C++ Builder

    Delphi, Kylix и Borland C++ Builder IB Objects Этот продукт объединяет две давно известные системы компонентов для Firebird и InterBase, которые позволяют разработчикам использовать инструменты Borland IDE (Delphi, Kylix, и Borland C++ Builder) для реализации всех возможностей Firebird. Одна система совместима с

    Разработка приложений баз данных InterBase на Borland Delphi/C++ Builder/Kylix

    Разработка приложений баз данных InterBase на Borland Delphi/C++ Builder/Kylix Что такое InterBase Express? Пользователи Borland Delphi 5-7 и Borland C++ Builder 5-6 редакций Professional и Enteiprise наверняка уже обратили внимание на закладку InterBase в палитре компонентов. Именно эта закладка и представляет собой набор

    Глава 11 Демонстрационное Linux-приложение

    Глава 11 Демонстрационное Linux-приложение В этой главе кусочки мозаики сложатся в единую композицию. Мы опишем и реализуем законченную Linux-программа, в которой объединятся многие рассмотренные в данной книге методики. Программа через протокол HTTP выдает информацию о

    Вопросы по Delphi 1.0

    Вопросы по Delphi 2.0

    Вопросы по Delphi 2.0 Что нового в Delphi 2.0 по сравнения с Delphi 1.0? Выпущенная в феврале 1995 года версия Delphi 1.0 стала первым инструментом для Windows, комбинирующим оптимизирующий компилятор, механизмы визуальной разработки Two-Way-Tools и масштабируемую архитектуру обработки баз данных.

    Что нового в Delphi 2.0 по сравнения с Delphi 1.0?

    Что нового в Delphi 2.0 по сравнения с Delphi 1.0? Выпущенная в феврале 1995 года версия Delphi 1.0 стала первым инструментом для Windows, комбинирующим оптимизирующий компилятор, механизмы визуальной разработки Two-Way-Tools и масштабируемую архитектуру обработки баз данных. Сегодня сотни

    Delphi VCL FAQ

    IPLabs Linux Team: начало русского Linux’а

    IPLabs Linux Team: начало русского Linux’а Следующая веха на пути русского Linux’а – 1998 год, когда фирма IPLabs (точнее, ее подразделение – IPLabs Linux Team) совместно с Институтом логики (на самом деле это были одни и те же люди – Алексей Новодворский, Алексей Смирнов и Юрий Девяткин с

    indbooks

    Читать онлайн книгу

    Приложение Б. Kylix — Delphi для Linux

    В 2001 году компания Borland International, разработавшая Delphi, выпустила продукт под названием Kylix, Kylix— это среда быстрой разработки приложений для Linux. Интерфейсом она почти ничем не отличается от привычного Delphi, а язык программирования, который использует Kylix просто не может не радовать — это Object Pascal. Короче говоря, Kylix — это тот же Delphi, только для ОС Linux. Корпорация Borland предлагает два основных варианта Kylix: Kylix Desktop Developer и Kylix Server Developer. Наиболее полной версией по возможностям и функциональности является Kylix Server Developer.

    Существует возможность переносить программы из Delphi в Kylix (само собой, если у программ нет привязки к ОС — например, использования функций WinApi). Стоит сказать несколько слов о совместимости и переносимости исходных кодов программ с Delphi в Kylix. Как известно, в Delphi используется библиотека классов VCL. Для Kylix эта библиотека называется CLX (библиотека компонентов для кросс-платформенной разработки). Впрочем, они довольно совместимы, и в VCL присутствует почти полная поддержка библиотеки классов CLX.

    Еще одно небольшое отличие заключается в расширении файлов, содержащих описание форм. В Delphi эти файлы имеют расширение *.dfm, а в Kylix — *.xfm. Это не создает особых неудобств, просто в программах следует изменить директиву <$R .dfm>на <$R .xfm>.

    В Kylix, в отличие от Delphi, отсутствует возможность работы с базами данных BDE и ADO. Отсутствует поддержка ActiveX, COM и CORBA. Невзирая на все перечисленные недостатки и аспекты несовместимости с Delphi, Kylix является довольно удобной средой программирования. Тот кто программирует на Delphi, сможет перейти на Kylix без особых затруднений.


    Перекрестный компилятор Delphi для Linux

    Мне было интересно, есть ли какой-либо компилятор Borland Cross, который может заставить мой Windows-код работать с linux без wine.I’m использует winxp с delphi 7. Мне всегда было интересно, можно ли закодировать тот же инструмент, который я закодировал в окнах, снова в Linux и как можно закодировать тот же инструмент, используя код pascal в linux.Thanks

    Лучшим решением является Lazarus, графический интерфейс Delphi для Free Pascal. Если вы использовали «чистый» vcl, без внутренних окон Windows или каких-либо специальных надстроек, миграция будет куском торта:) Посмотрите здесь: http://lazarus.freepascal.org

    BTW — Lazarus и FPC — это настоящая mulitplatform — вы можете скомпилировать код для Linux, Windows, MacOS и других с той же кодовой базой:)

    Ваш единственный вариант, если вы хотите использовать кросс-компилятор Borland Delphi, CrossKylix . Это не настоящий кросс-компилятор. Вместо этого вы запускаете компилятор Kylix для Linux под эмулированной средой Linux.

    Обратите внимание, что вы будете вынуждены использовать CLX, а не VCL, и что Kylix хорошо и действительно мертв в наши дни. Лично я думаю, что Вино, вероятно, проще и лучше.

    Блог о Linux и Windows

    Записки по настройке Debian Ubuntu и Microsoft Windows

    Замена Kylix — Lazarus

    Kylix не оправдал возложенных на него надежд. На данный момент проект как таковой уже умер, и Борланд отказался от дальнейшего развития и поддержки Kylix. И что делать тем, кто хочет, продолжит использовать язык Паскаль и Object Pascal. Есть альтернатива в лице Lazarus , основанной на FreePascal.Free Pascal Compiler (FPC) — это свободно распространяемый компилятор языка Паскаль с открытыми исходными кодами. Он совместим с Borland Pascal 7 и Object Pascal – Delphi, но при этом обладает рядом дополнительных возможностей, например, поддерживает перегрузку операторов. FPC — кроссплатформенный инструмент, поддерживающий огромное количество платформ. Среди них — AmigaOS, DOS, Linux, *BSD, OS/2, MacOS(X) и Win32.’, ‘Однако FPC — не просто компилятор. Он имеет в своём составе великолепный набор библиотек, одной из которых является FCL, включающая в себя компоненты, совместимые с невизуальными компонентами VCL из Borland Delphi. Разработка визуальных компонент — это цель другого проекта — Lazarus.

    /tmp
    $ wget http://sourceforge.net/projects/lazarus/files/Lazarus%20Linux%20i386%20DEB/Lazarus%200.9.30/lazarus-0.9.30-i386.deb.tar/download

    После того как скачали для начало распаковываем архив lazarus-0.9.30-i386.deb.tar при помощи Ark или tar $ cd

    /tmp
    $ tar -xf lazarus-0.9.30-i386.deb.tar

    и начинаем устанавливать пакеты при помощи GDebi Package Installer или в консольном режиме $ cd

    /tmp/deb/
    $ sudo dpkg -i . i386.deb и так все пакеты из каталога deb и только потом устанавливаем lazarus_0.9.30-i386.deb После установки мы можем выбрать Главное меню — Программирование — Lazarus или в консоле ввести команду

    $ /usr/share/lazarus/startlazarus или выбрать в меню Программирования — LazarusР Вот и все желаю удачи.

    Kylix

    Kylix — это средство для проектирования и разработки приложений для платформы Linux на языках Delphi и C/C++. Kylix представляет собой хорошую попытку перенести известную среду разработки Delphi в операционную среду GNU/Linux . Данный продукт был удачным решением, но преждевременным, в 1999-2002 годах количество Linux пользователей было не так уж много, и тем самым был не велик спрос и на программы. В результате Borland отказывается от поддержки и разработки данного продукта, это произошло по причине того, что продукт приносил убытки. Но, несмотря на это данный продукт популярен и в наше время. Причина данному факту служит то, что для быстрого переноса приложения из M icr o s o ft Windows на GNU/Linux , или для быстрого написания программ, которые будут работать на обеих платформах. Так как последняя версия была выпущена в 2002 году, то Kylix может работать только с ядром Linux 2.2. Для решений этой проблемы сторонними разработчиками создаются многочисленные патчи.

    Илон Маск рекомендует:  Asp работа с языками сценариев

    Delphi. Kylix Delphi for Linux. Перехватчики событий, сигналы и слоты.

    Перехватчики событий

    В предыдущей статье была рассмотрена обработка событий Qt в обработчике события OnEvent Kylix класса TApplication. В этой статье будет показан другой метод обработки событий Qt — использование перехватчиков событий (event hooks). Перехватчики событий подобны обработчику события OnEvent, с той разницей, что перехватчики событий позволяют подойти к обработке событий более дифференцировано. Перехватчики назначаются для отдельных объектов Qt, причем каждому объекту может быть назначено несколько перехватчиков для обработки разных типов событий.

    Перехватчик может быть процедурой или функцией, являющейся методом объекта Object Pascal и использующей формат вызова cdecl. Для того, чтобы назначить перехватчик какому-либо экземпляру класса Qt, необходимо создать экземпляр класса перехватчика для данного объекта Qt и связать его с методом-обработчиком. Функции, позволяющие сделать это, как и другие функции CLXDisplay API, декларируются в модуле Qt (файл Qt.pas).


    В предыдущей статье было писано демонстрационное приложение, позволяющее перемещать фрагменты текста методом Drag and Drop. Теперь мы перепишем это приложение, используя перехватчики событий. Перехватчик назначается компоненту TLabel в конструкторе главной формы. Ниже приводятся декларация класса и исходный текст конструктора.

    DropHook — переменная типа QEvent_hookH, ссылка на объект-перехватчик событий. Не путайте этот объект с объектом, события которого перехватываются. В CLXDisplay API определено несколько объектов перехватчиков различных типов, и для создания каждого из них используется специальная функция. В данном примере мы создаем наиболее общий объект-перехватчик, перехватывающий события разных типов. Функция QEvent_hook_create создает экземпляр такого объекта и связывает его с экземпляром класса, события которого необходимо обрабатывать (в нашем случае — экземпляр QLabel).

    Далее мы присваиваем переменной M указатель на метод перехватчик EventHandler. Обратите внимание на преобразование типов. Для того, чтобы выполнить преобразование корректно, необходимо определить тип-функцию

    EventFunc = function (Handle : QObjectH; e : QEventH) : Boolean of object; cdecl;
    декларация которой в точности соответствует декларации метода-перехватчика.

    Связывание метода перехватчика с объектом-перехватчиком выполняется функцией Qt_hook_hook_events. Первый параметр функции — указатель на объект-перехватчик, второй параметр — указатель на метод. Учтите, что для каждой пары «объект-перехватчик / тип перехватываемых событий» в модуле Qt определена своя функция, связывающая объекты и методы перехватчики.

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

    Уничтожение объекта-перехватчика выполняется в деструкторе формы. Для этого служит функция QEvent_hook_destroy.

    Исходный текст демонстрационного приложения находится здесь . Как и пример из предыдущей статьи, это приложение может быть скомпилировано и в Kylix (для Linux), и в Delphi 6 (для Windows). Для того, чтобы это приложение выполнялось корректно, Вам возможно придется исправить ошибку в модуле Qt (см. предыдущую статью ).

    Еще один пример использования перехватчиков — приложение, отслеживающее состояние буфера обмена Qt. Это приложение отображает информацию о mime-типах данных, скопированных в буфер обмена. Кроме того, если в буфере обмена присутствуют данные в текстовом формате, приложение отображает и сами данные. Информация обновляется при изменении содержимого буфера обмена. Для того, чтобы контролировать состояние буфера обмена, мы создаем объект-перехватчик QClipboard_hook и связываем его с методом перехватчиком, имеющим тип QClipboard_dataChanged_Event. Этот метод вызывается всякий раз при изменении содержимого буфера обмена. Ниже приводится исходный текст метода перехватчика.

    Переменная CB указывает на объект буфера обмена. При помощи функции QClipboard_data мы получаем ссылку на объект QMimeSourceH, являющийся контейнером данных, содержащихся в буфере обмена. Этот объект позволяет также получить информацию о типах данных, для чего используется функция QMimeSource_format. Эта функция возвращает строку с именем типа данных. Первый параметр функции — указатель на объект-контейнер, второй параметр — номер типа данных. Типы нумеруются с нуля. Если значение этого параметра превышает номер последнего типа, возвращается пустая строка. В нашем примере мы добавляем строки с именами типов в объект Memo1. Далее с помощью функции QTextDrag_canDecode мы проверяем, содержит ли объект-контейнер данные в текстовом формате и если содержит, извлекаем эти данные при помощи функции QTextDrag_Decode.

    Полный исходный текст демонстрационного приложения находится здесь . Отслеживание содержимого буфера обмена работает корректно только для приложений, использующих Qt буфер. С учетом этих ограничений демонстрационное приложение работает и в Windows (будучи скомпилировано в Delphi 6). Для демонстрации его работы Вы можете воспользоваться либо Qt приложениями (в Linux) либо примерами использования CLXDisplay API, поставляемыми с Delphi 6 (в Windows).

    В демонстрационном приложении содержится также другой пример использования перехватчиков, в котором с одним объектом-перехватчиком связываются два метода перехватчика. Метод ButtonPressed вызывается в момент, когда кнопка Button1 нажата, метод ButtonReleased в момент, когда кнопка отпущена.

    Сигналы и слоты

    В приложениях, построенных на основе иерархии объектов часто бывает необходимо, чтобы в ответ на событие, связанное с одним из объектов, вызывался метод другого объекта. Рассмотрим такой пример: пусть в нашем приложении требуется ввести обработку события SomeEvent, связанного с каким-либо объектом VCL. В объекте определено свойство OnSomeEvent процедурного типа TSomeEvent. Когда мы назначаем обработчик событию, мы инициализируем свойство OnSomeEvent значением указателя на метод, список параметров которого соответствует типу TSomeEvent. Как правило метод-обработчик не является методом того объекта, которому принадлежит свойство OnSomeEvent. Таким образом мы устанавливаем связь между двумя объектами. Когда в системе происходит событие SomeEvent, в объекте, с которым связано это событие, выполняется проверка содержимого свойства OnSomeEvent, и если это свойство инициализировано, вызывается соответствующий метод-обработчик.

    В Qt library взаимодействие между объектами осуществляется при помощи механизма сигналов и слотов. Объект Qt генерирует (в терминологии Qt «эмитирует») сигнал в ответ на событие. Для приема и обработки сигналов служат слоты. Также как и сигналы, слоты являются частью объектов Qt. Каждому слоту в данном объекте сопоставлен какой-либо метод этого объекта. Для того, чтобы объект реагировал на некоторый сигнал, необходимо связать этот сигнал с одним из слотов объекта. В этом случае после генерации сигнала будет вызван метод, соответствующий данному слоту. Если сигнал несет какие-либо данные о событии, эти данные могут быть переданы методу обработчику через его параметры. Связывание сигналов и слотов похоже на назначение обработчиков событий объектов Object Pascal, однако между реализацией взаимодействия объектов в Object Pascal и Qt есть существенные различия. Многие объекты библиотеки Qt library уже имеют слоты для обработки определенных сигналов и для связывания их друг с другом не требуется перекрывать их методы в объектах-потомках. Во-вторых механизм взаимодействия сигналов и слотов позволяет связывать сигналы и слоты разных типов, не заботясь о соответствии списков параметров. Если список параметров сигнала не соответствует списку параметров обработчика, при вызове обработчик получает значения параметров, установленные по умолчанию. Третье отличие заключается в возможности связывать один сигнал с несколькими слотами и один слот с несколькими сигналами. Это означает, что событию может быть сопоставлено несколько обработчиков, являющихся методами разных объектов, и в ответ на событие будут вызываться все назначенные ему обработчики.

    CLXDisplay API предоставляет средства для работы с сигналами и слотами Qt. Для связывания сигналов и слотов служит функция QObject_connect. Функции передается четыре параметра. Первый параметр — указатель на объект-источник сигнала. Второй параметр — строка типа PChar. В этой строке передается имя сигнала, соответствующее синтаксису языка C++. Имя сигнала должно предваряться символом «2». Третий параметр функции QObject_connect — указатель на метод-приемник. Четвертый параметр — строка типа PChar, содержащая имя слота, соответствующее синтаксису C++ и предваряемое символом «1».

    Рассмотрим пример:
    В Qt классе QLineEdit, лежащем в основе компонента VisualCLX TEdit, определен сигнал textChanged, который эмитируется при изменении строки в окне компонента. В классе QLabel, на котором основан компонент TLabel, определен слот setText, который позволяет задать строку в компоненте Label. Если связать сигнал textChanged экземпляра класса QLineEdit со слотом setText экземпляра класса QLabel, изменения в строке ввода будут немедленно отображаться в строке QLabel. Для того, чтобы связать указанные сигнал и слот, необходимо вызвать функцию QObject_connect со следующими значениями:

    Первый параметр — указатель на объект-источник сигнала, в данном случае QEdit. Второй параметр — имя сигнала, определенное в заголовочном файле C++ qlineedit.h, с прибавлением двойки, указывающей на то, что это сигнал. Третий параметр — ссылка на объект-приемник сигнала (QLabel). Четвертый параметр — имя слота из файла qlabel.h с прибавлением единицы. Обратите внимание на то, что в данном случае списки параметров сигнала и слота совпадают, так что в ответ на сигнал слоту будет передана строка измененного текста. Приложение, демонстрирующее связывание сигналов и слотов в Object Pascal, можно скачать здесь . Следует отметить, что в Delphi 6 это приложение работает не совсем корректно.

    Для разрыва связи между сигналом и слотом используется функция QObject_disconnect. Обычно в обращении к этой функции нет необходимости, так как при уничтожении экземпляра Qt объекта все связи с его сигналами и слотами разрываются автоматически. Функцию QObject_disconnect следует использовать если необходимо разорвать связь между сигналом и слотом до уничтожения соответствующих объектов. Список параметров у функции QObject_disconnect такой же, как и у функции QObject_connect. Значение nil, переданное функции QObject_connect в том или ином параметре (сигнал, слот, объект приемник), интерпретируется функцией как «групповой символ» и позволяет выполнять операцию разрыва связи сразу над множеством элементов. Например, вызов

    QObject_disconnect(SomeControl.Handle, PChar(‘2SomeSignal ()’), nil, nil );

    отсоединяет все слоты, связанные с сигналом SomeSignal Qt объекта, соответствующего SomeControl.

    В рамках CLXDisplay API определено большое количество сигналов и слотов. Если же Вы захотите добавить свои сигналы и слоты, Вам придется объединить фрагменты программ, написанные на Object Pascal и C++.

    Ссылки по теме

    Популярные статьи
    Информационная безопасность Microsoft Офисное ПО Антивирусное ПО и защита от спама Eset Software


    Бестселлеры
    Курсы обучения «Atlassian JIRA — система управления проектами и задачами на предприятии»
    Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год. Электронный ключ
    Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
    Microsoft Office для Дома и Учебы 2020. Все языки. Электронный ключ
    Курс «Oracle. Программирование на SQL и PL/SQL»
    Курс «Основы TOGAF® 9»
    Microsoft Windows Professional 10 Sngl OLP 1 License No Level Legalization GetGenuine wCOA (FQC-09481)
    Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
    Windows Server 2020 Standard
    Курс «Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации»
    Антивирус ESET NOD32 Antivirus Business Edition
    Corel CorelDRAW Home & Student Suite X8

    О нас
    Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

    На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

    Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL