Delphi с интерфейсом HTML / CSS - PullRequest
13 голосов
/ 04 июля 2010

Я хочу разработать приложение delphi с графическим пользовательским интерфейсом HTML / CSS, не обязательно работающее в веб-браузере. Я хочу сделать это, создать более богатый графический интерфейс пользователя с анимацией и т. Д. И отделиться от обычных компонентов VCL / Windows. Какие-либо предложения?

Ответы [ 9 ]

9 голосов
/ 05 июля 2010

HTML и CSS не доставят вам ни анимации, ни насыщенного пользовательского интерфейса. На самом деле это далеко не так. Наоборот. Вам нужно будет инвестировать в инструментарий для обеспечения такого рода функциональности и почти наверняка задействовать JavaScript. И даже если вы не хотите, чтобы ваше возможное приложение размещалось в веб-браузере, ваше приложение само должно будет размещать веб-браузер для отображения вашего HTML / CSS / JavaScript UI, и тогда вам будет гораздо сложнее подключить ваш Графический интерфейс к логике вашего приложения (если вы на самом деле не используете архитектуру веб-приложений).

Delphi (или любой другой язык разработки приложений для Windows) дает вам многое, много дальше по пути к более простому, эффективному и быстрому внедрению Rich User Interface, чем HTML или CSS.

Если вам не нравится внешний вид стандартных элементов управления Delphi (о чем вы говорите), существует множество альтернативных библиотек.

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

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

8 голосов
/ 06 июля 2010

В одном из моих приложений у меня есть встроенный браузер, и я реализовал интерфейс IDocHostUIHandler. Это позволяет мне выставить COM-объект с помощью метода «GetExternal». У меня просто есть COM-объект, который предоставляет методы и свойства моего приложения, которые делают их доступными для веб-страниц, размещенных во встроенном браузере.

Так что скрипт на моих веб-страницах имеет такие строки, как "external.DoSomething ()" и "i = external.GetThisValue ()". Так, например, за событиями нажатия кнопки вы можете запустить метод вашего приложения (реализовать в основной форме, в самом объекте COM или как угодно).

На этом сайте много информации о встраивании браузера в приложение Delphi: http://www.delphidabbler.com/articles?article=22

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

5 голосов
/ 04 июля 2010

Если вам нужна программа Delphi с более привлекательным интерфейсом, HTML - это на самом деле , а не то, что вы ищете.Что вам действительно нужно, так это более качественные элементы управления VCL.

Взгляните, например, на TMS Smooth Controls.Если вы работаете на Delphi 2009 или 2010, вы можете загрузить его бесплатно здесь .Это одна из многих библиотек компонентов, которые могут привнести в вашу программу приятный пользовательский интерфейс.

4 голосов
/ 04 июля 2010

HTML / CSS предлагает несколько приятных функций, которые (еще нет?) Доступны в Delphi и VCL.Они также являются хорошей отправной точкой для программирования клиент-сервер, поскольку ключевым фактором здесь является разделение пользовательского интерфейса и бизнес-логики.

Одной из популярных библиотек для Delphi является проект extpascal :

ExtPascal - это обертка / привязка Object Pascal (Delphi, FreePascal / Lazarus) для Ext JS,полный графический интерфейс Ajax, созданный на JavaScript, для разработки Rich Internet Application (RIA).ExtPascal позволяет использовать Ext JS из команд Object Pascal, выданных сервером.Это приносит структуру и строгий синтаксис Object Pascal для программирования веб-браузера.ExtPascal обернет Draw2d в будущие выпуски.

Некоторые демонстрации онлайн здесь и здесь .

ps, и мне очень нравится HTML/ CSS поддержка размеров элементов и шрифтов в относительных единицах (например, в процентах).В сочетании с браузерным увеличением / уменьшением и WCAG эргономика пользовательского интерфейса не может быть намного лучше.

2 голосов
/ 05 июля 2010

HTML Option 1

Если вы действительно хотите использовать HTML + CSS (+ JavaScript) для создания GUI, вы можете взглянуть на Приложения HTML , очень увлекательную концепцию отMicrosoft.Приложения HTML, файлы .hta, были поддержаны из Windows ME, если я правильно помню, и они все еще поддерживаются в Windows 7.

Вы можете создать приложение HTML (то есть файл HTA), и такделать, создавая графический интерфейс, используя только HTML, CSS и JavaScript.Когда пользователь дважды щелкает файл HTA, он открывается как программа, но графический интерфейс полностью основан на HTML;на самом деле все окно является замаскированным окном Internet Explorer.

А теперь важная часть: вы можете создавать Delphi-приложения без графического интерфейса (т.е. Delphi-приложения, которые не являются консольными, но не имеютформы либо), и запустить их через гиперссылки (или JavaScript) из вашего HTA GUI.(Что ж, вероятно, лучше создать одно такое приложение Delphi и использовать аргументы командной строки (ParamStr s) для передачи желаемого действия.)

Просто идея ...

HTML Option 2

Кроме того, вы можете создать обычное приложение с графическим интерфейсом Delphi, но заполнить всю основную форму с помощью TWebBrowser (элемент управления IE), используя Align := alClient.Затем вы можете загрузить статические HTML-страницы (хранящиеся в папке Program Files или в Интернете) или использовать Delphi для динамического создания HTML-страниц для отображения.Я думаю, что есть возможность перехватить ссылки из элемента управления, чтобы вы могли отвечать на ссылки, используя код Delphi.

А как насчет OpenGL?

Если вы хотите "оторваться" от обычногоВнешний вид Windows, тогда я бы порекомендовал вам создать графический интерфейс с помощью OpenGL.Создать приложение Delphi с OpenGL очень легко (если вы знакомы с OpenGL) - просто добавьте «OpenGL» в список uses.

1 голос
/ 06 июля 2010

для Rich GUI и анимации, вы смотрели KSDev DXScen и VGScene ?

1 голос
/ 05 июля 2010

Новые версии Qt содержат возможность использовать html / js для интерфейсов. Я не знаю, есть ли привязки библиотеки Qt для Delphi, но Qt именно то, что вы хотите.

1 голос
/ 05 июля 2010

Во-первых, я полностью согласен с ответом Deltics.

Сказав это, если вы осваиваете HTML и CSS (а также JavaScript, AJAX и т. Д. И т. Д.) И ищете способ использовать мощь и скорость компилятора Delphi для управления динамикой веб-сайта, это может интерес.

Я создал проект, который использует компилятор Delphi для создания библиотеки, которая запускает веб-сайт. Исходные файлы объединяют HTML и Delphi, как и другие инструменты веб-сценариев, но обрабатываются при обновлении страницы и автоматически компилируются. Он использует «библиотечный обработчик», который включает библиотеку веб-сайта практически во все, что вам нравится: IIS, Apache, автономный HTTP-сервер (для хостинга) или непосредственно в InternetExplorer или FireFox (что отлично подходит для разработки).

http://xxm.sourceforge.net/

0 голосов
/ 05 июля 2010

Если вы хотите, чтобы ваш объект delphi / Pascal был «фоновым» и имел сеть, подобную RIA, вам также стоит взглянуть на Morfik: текст ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...