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

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

Функция загрузки WKWebView Content никогда не набирается

Затем, после того как веб-просмотр завершит загрузку, вы можете определить требуемые высоты по

func webView(webView: WKWebView!, didFinishNavigation navigation: WKNavigation!) {

   println(webView.scrollView.contentSize.height)

}

13
задан Hardy Le Roux 5 July 2010 в 06:25
поделиться

9 ответов

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

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

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

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

8
ответ дан 1 December 2019 в 20:11
поделиться

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

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

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

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

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

9
ответ дан 1 December 2019 в 20:11
поделиться

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

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

5
ответ дан 1 December 2019 в 20:11
поделиться

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

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

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

http://xxm.sourceforge.net/

1
ответ дан 1 December 2019 в 20:11
поделиться

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 в будущие выпуски.

Некоторые демонстрации доступны в Интернете здесь и здесь .

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

4
ответ дан 1 December 2019 в 20:11
поделиться

HTML Вариант 1

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

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

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

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

HTML Вариант 2

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

Что насчет OpenGL?

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

2
ответ дан 1 December 2019 в 20:11
поделиться

Если вы хотите сохранить свой «фон» объекта delphi / Pascal и иметь такую ​​сеть, как RIA, вы также посмотрите Морфик: текст ссылки

0
ответ дан 1 December 2019 в 20:11
поделиться

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

1
ответ дан 1 December 2019 в 20:11
поделиться

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

1
ответ дан 1 December 2019 в 20:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: