Подтвердить что ты не робот

Delphi с интерфейсом HTML/CSS

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

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

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

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

Ответ 3

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

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

Ответ 4

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

Одна популярная библиотека для Delphi - это проект extpascal:

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

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

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

Ответ 5

HTML-вариант 1

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

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

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

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

Вариант HTML 2

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

Что относительно OpenGL?

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

Ответ 6

Сначала это: я полностью согласен с ответом Deltics.

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

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

http://xxm.sourceforge.net/

Ответ 7

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

Ответ 8

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

Ответ 9

Если вы хотите сохранить свой фон "delphi/Pascal Object" и иметь такой веб-сайт, как RIA, вы также посмотрите на Morfik: текст ссылки