2010-07-04 24 views
12

Quiero desarrollar una aplicación delphi con una interfaz gráfica de usuario HTML/CSS, que no necesariamente se ejecute desde un navegador web. Quiero hacer esto, crear una interfaz gráfica de usuario más rica con animaciones, etc. y alejarse de los componentes normales de VCL/apariencia de Windows. ¿Alguna sugerencia?Delphi con interfaz HTML/CSS

+6

No esperaba que CSS + HTML brindara una interfaz de usuario más rica que una aplicación de Windows nativa donde puede aprovechar la GPU, ... Ha mirado .NET y WPF (http://windowsclient.net /)? Existen herramientas de desarrollador gratuitas que pueden ayudarlo a comenzar. –

+1

¿conoces Intraweb? si recuerdo bien, viene gratis de delphi7. saludos cordiales, Radu – RBA

+0

A partir del lanzamiento de RAD Studio XE2, ahora puede usar Firemonkey para aplicaciones HD ricas. Sin embargo, Firemonkey todavía es muy crudo y prematuro, por lo que no necesariamente lo recomendaría todavía, pero tiene un gran potencial para XE3 para Windows 8 ... –

Respuesta

8

En una de mis aplicaciones que tienen un un navegador integrado y tengo implementó la interfaz IDocHostUIHandler. Esto me permite exponer un objeto COM a través del método "GetExternal". Simplemente tengo un objeto COM que expone métodos y propiedades de mi aplicación que los hace disponibles para las páginas web alojadas dentro del navegador integrado.

Así que la secuencia de comandos en mis páginas web tiene líneas como "external.DoSomething()" y "i = external.GetThisValue()". Entonces, por ejemplo, detrás de los eventos de clic de botón puede ejecutar un método de su aplicación (implementar en el formulario principal, en el objeto COM en sí mismo, o lo que quiera).

Este sitio tiene un montón de información sobre la incorporación de un navegador en su aplicación Delphi: http://www.delphidabbler.com/articles?article=22

Ciertamente, puede ser engorroso para poner en práctica muchas de estas cosas y en muchos casos hay probablemente mejores opciones. Pero para mi propósito específico, puedo ofrecer una "página de inicio" que puede modificarse fácilmente para cambiar su diseño, aspecto e incluso exponer más (o menos) funcionalidad según lo requerido por mí o por mis usuarios.

+1

¡Gracias a todos por todas las excelentes respuestas! Me has dado muchas opciones para explorar. Creo que por lo que estoy tratando de lograr, la respuesta de Jenakai es mi mejor opción.Nuevamente gracias a todos. ¡Este sitio es absolutamente genial! –

4

Si desea un programa Delphi con una interfaz más atractiva, HTML es realmente no es lo que está buscando. Lo que realmente necesitas son controles de VCL más atractivos.

Eche un vistazo a TMS Smooth Controls, por ejemplo. Si está en Delphi 2009 o 2010, puede obtenerlo como descarga gratuita here. Esa es una de las muchas bibliotecas de componentes que pueden brindarle una interfaz de usuario más inteligente a su programa.

4

HTML/CSS ofrece algunas buenas características que (¿todavía no están disponibles?) Disponibles en Delphi y VCL. También son un buen punto de partida para la programación cliente/servidor, la separación de la interfaz de usuario y la lógica comercial es un factor clave aquí.

Una biblioteca popular para Delphi es el extpascal project:

ExtPascal es un Object Pascal (Delphi, FreePascal/Lázaro) envoltorio/vinculante de Ext JS, una completa interfaz gráfica de usuario Ajax marco, hecha en JavaScript , para Rich Internet Application (RIA) desarrollo. ExtPascal le permite usar Ext JS desde los comandos de Object Pascal emitidos por el servidor. Trae la estructura y la sintaxis estricta del Object Pascal para programar el navegador web . ExtPascal ajustará Draw2d en futuras versiones.

Algunas demostraciones están en línea here y here.

p.s. y realmente me gusta el soporte de HTML/CSS para los tamaños de elementos y fuentes en unidades relativas (por ciento de examen). En combinación con el acercamiento/alejamiento del navegador y WCAG, la ergonomía de la interfaz de usuario no puede ser mucho mejor.

9

HTML y CSS no entregarán animaciones o una interfaz de usuario enriquecida a sus pies. Lejos de eso, de hecho. Todo lo contrario. Necesitará invertir en un conjunto de herramientas para proporcionar ese tipo de funcionalidad y casi seguro involucrar JavaScript. E incluso si no desea que su aplicación final se aloje en un navegador web, su aplicación tendrá que alojar un navegador web para procesar su IU HTML/CSS/JavaScript, y entonces tendrá un trabajo mucho más difícil de conectar su GUI a su lógica de aplicación (a menos que realmente abra una arquitectura de aplicación web).

Delphi (o cualquier lenguaje de desarrollo de aplicaciones de Windows para el caso) le ofrece mucho, mucho más adelante en el camino hacia una interfaz de usuario enriquecida más simple, efectiva y rápida que HTML o CSS.

Si no te gusta la apariencia de los controles Delphi estándar (que en esencia es lo que dices), hay numerosas bibliotecas alternativas disponibles.

También tenga en cuenta, sin embargo, que cuando alguien utiliza una aplicación de Windows esperan que se vea y se comporte de una cierta manera en gran medida. Usar paradigmas sofisticados basados ​​en la web en una aplicación de escritorio simplemente por el simple hecho de confundir y frustrar a los usuarios si se lleva demasiado lejos.

Estoy a favor de las interfaces de usuario rompiendo con las convenciones donde conduce a una interfaz de usuario más intuitiva, pero simplemente ser "más bonito" no necesariamente conduce en esa dirección y es tan equivocado como dogmáticamente adherirse a las convenciones.

+1

Si bien no voy a discutir con este significado de respuestas en 2010, ahora, en 2015, esta respuesta ya no es relevante. El avance de HTML5, CSS3 y frameworks como AngularJS (y componentes como BootstrapUI) y su desempeño los hacen candidatos muy viables para la integración en aplicaciones Delphi. –

+0

@Peter - Supongo que es por eso que las respuestas (y las preguntas) tienen la fecha/hora claramente visible. ;) Retro-edición de todo el contenido en SO para la relevancia continua es poco práctico. Los consumidores del contenido simplemente tendrán que aplicar algo de sentido común que temo. Por supuesto, en este caso particular Delphi se ha movido significativamente. Con FMX (me encanta o lo odio) las cosas que el OP solicitó (animación, aspecto sin VCL, etc.) están más fácilmente a su alcance sin tener que buscar HTML. :) – Deltics

+0

Estoy de acuerdo con usted. Y sí, Delphi ha recorrido un largo camino, en términos de interfaz de usuario y facilidad de uso, pero creo que algunas personas seguirán buscando integrar componentes web (como AngularJS o EmberJS). Simplemente sentí la necesidad de señalar que cualquiera que busque una respuesta actualizada a la pregunta de OP puede necesitar mirar más allá. –

2

Opción 1

HTML

Si Relly desea utilizar HTML + CSS (+ JavaScript) para construir una interfaz gráfica de usuario, se puede echar un vistazo a HTML Applications, un concepto muy interesante de Microsoft. Las aplicaciones HTML, archivos .hta, han sido compatibles con Windows ME, si no recuerdo mal, y aún son compatibles con Windows 7.

Puede crear una aplicación HTML (es decir, un archivo HTA) y, al hacerlo, crear una GUI usando solo HTML, CSS y JavaScript. Cuando el usuario hace doble clic en el archivo HTA, se abrirá como un programa, pero la GUI se basa completamente en HTML; de hecho, toda la ventana es una ventana de Internet Explorer disfrazada.

Y ahora viene la parte importante: podría crear aplicaciones Delphi no GUI (es decir, aplicaciones Delphi que no son aplicaciones de consola, pero que tampoco tienen formularios) y comenzarlas a través de hipervínculos (o JavaScript) desde su HTA GUI. (Bueno, es probablemente mejor para crear una de esas aplicaciones Delphi, y el uso de argumentos de línea de comandos (ParamStr s) para comunicar la acción deseada.)

sólo una idea ...

Opción 2 HTML

Como alternativa, puede crear una aplicación de GUI de Delphi normal, pero rellene todo el formulario principal con un TWebBrowser (un control de IE), usando Align := alClient. Luego, puede cargar páginas HTML estáticas (almacenadas en la carpeta Archivos de programa o en Internet) o puede usar Delphi para crear dinámicamente páginas HTML para mostrar. Creo que es posible interceptar enlaces del control, para que pueda responder a los enlaces utilizando el código Delphi.

¿Qué pasa con OpenGL?

Si desea "alejarse" de la apariencia normal de Windows, entonces le recomendaría que cree su GUI utilizando OpenGL. Es muy fácil crear una aplicación Delphi con OpenGL (siempre que esté familiarizado con OpenGL): simplemente agregue "OpenGL" a su lista uses.

1

Primero esto: estoy completamente de acuerdo con la respuesta de Deltics.

Dicho esto, si domina HTML y CSS (y JavaScript y AJAX, etc.) y está buscando una forma de utilizar la potencia y la velocidad del compilador Delphi para ejecutar la dinámica de un sitio web, esto puede ser de interés.

He creado un proyecto que utiliza el compilador Delphi para crear una biblioteca que ejecuta un sitio web. Los archivos fuente combinan HTML y Delphi, al igual que otras herramientas de scripting web, pero se procesan en una actualización de página y se compilan automáticamente. Utiliza un "manejador de biblioteca" que conecta la biblioteca del sitio web prácticamente a todo lo que desee: IIS, Apache, un servidor HTTP independiente (para alojamiento) o directamente en InternetExplorer o Firefox (que es ideal para desarrollar).

http://xxm.sourceforge.net/

1

Las nuevas versiones de Qt contienen capacidad de utilizar HTML/JS para las interfaces. No sé si hay enlaces de la biblioteca Qt para Delphi, pero Qt es exactamente lo que quieres.

0

Si desea mantener su Delphi/Pascal Objeto 'fondo' y tener una web como RIA también echar un vistazo a Morfik: link text

+0

Morfik requiere un servidor, y lo sabes. –

+0

@JonLennartAasenden ¡Extraño comentario! La pregunta no decía "sin servidor" y mi respuesta fue solo para "abrir" las mentes. Por lo tanto, no soy un especialista en Morfik pero parece que hay soluciones para implementar 'sin servidor': http://wiki.morfik.com/wiki3/Deployment_on_Windows#Stand-alone-xapp – philnext

+0

Tengo mi propio sistema: http://www.op4js.com –

1

para la rica interfaz gráfica de usuario y la animación, ¿has mirado en KSDev DXScen y VGScene?

+1

Ahora se llama FireMonkey y forma parte de Delphi. – Torbins