2010-07-04 12 views
12

Desidero sviluppare un'applicazione delphi con un'interfaccia utente grafica HTML/CSS, non necessariamente in esecuzione all'interno di un browser web. Voglio farlo creare un'interfaccia utente grafica più ricca con animazioni ecc. E staccare dai normali componenti VCL/aspetto di Windows. Eventuali suggerimenti?Delphi con interfaccia HTML/CSS

+6

Non mi aspetto che CSS + HTML porti un'interfaccia utente più ricca di un'applicazione Windows nativa in cui è possibile sfruttare la GPU, ... Hai guardato a .NET e WPF (http://windowsclient.net). /)? Esistono strumenti di sviluppo gratuiti che potrebbero aiutarti a iniziare. –

+1

conosci Intraweb? se mi ricordo bene viene gratis da delphi7. migliori saluti, Radu – RBA

+0

A partire dal rilascio di RAD Studio XE2, ora è possibile utilizzare Firemonkey per applicazioni HD avanzate. Comunque Firemonkey è ancora molto crudo e prematuro, quindi non lo raccomanderei ancora abbastanza, ma ha un alto potenziale per XE3 per Windows 8 ... –

risposta

8

In una delle mie applicazioni ho un un browser integrato e ho implementato l'interfaccia IDocHostUIHandler. Questo mi permette di esporre un oggetto COM tramite il metodo "GetExternal". Ho semplicemente un oggetto COM che espone metodi e proprietà della mia applicazione che li rende disponibili per le pagine Web ospitate all'interno del browser incorporato.

Quindi lo script nelle mie pagine web ha linee come "external.DoSomething()" e "i = external.GetThisValue()". Quindi, ad esempio, dietro gli eventi onclick del pulsante è possibile eseguire un metodo dell'applicazione (implementa nel modulo principale, nell'oggetto COM stesso o in qualsiasi altra cosa).

Questo sito ha un sacco di informazioni su incorporando un browser in Delphi app: http://www.delphidabbler.com/articles?article=22

Si può certamente essere ingombrante per implementare un sacco di questa roba e in molti casi ci sono opzioni probabilmente migliori. Ma per il mio scopo specifico sono in grado di offrire una "home page" che può essere facilmente modificata per cambiare il layout, l'aspetto e persino esporre più (o meno) funzionalità richieste da me o dai miei utenti.

+1

Grazie a tutti per tutte le ottime risposte !! Mi hai dato molte opzioni da esplorare. Penso che per quello che sto cercando di realizzare la risposta di Jenakai è la mia migliore scommessa.Ancora grazie a tutti. Questo sito è assolutamente fantastico! –

4

Se si desidera un programma Delphi con un'interfaccia migliore, l'HTML è in realtà non è quello che stai cercando. Quello di cui hai veramente bisogno sono i controlli VCL più belli.

Dai un'occhiata a TMS Smooth Controls, ad esempio. Se sei su Delphi 2009 o 2010, puoi scaricarlo come download gratuito here. Questa è una delle molte librerie di componenti che possono portare un'interfaccia utente slicker al tuo programma.

4

HTML/CSS offre alcune funzioni interessanti che sono (non ancora?) Disponibili in Delphi e VCL. Sono anche un buon punto di partenza per la programmazione client/server, separando l'interfaccia utente e la logica aziendale è un fattore chiave qui.

Una biblioteca popolare per Delphi è il extpascal project:

ExtPascal è un Object Pascal (Delphi, FreePascal/Lazarus) involucro/vincolante per Ext JS, una completa interfaccia grafica Ajax quadro, realizzato in JavaScript , per lo sviluppo Rich Internet Application (RIA) . ExtPascal consente di utilizzare Ext JS dai comandi Object Pascal emessi dal server. Presenta la struttura e la sintassi rigorosa dell'oggetto Object Pascal per la programmazione del browser Web . ExtPascal avvolgerà Draw2d nelle versioni future.

Alcune demo sono online here e here.

p.s. e mi piace molto il supporto HTML/CSS per le dimensioni di elementi e font in unità relative (per exampe per cento). Combinato con il browser zoom in/zoom out e WCAG, l'ergonomia dell'interfaccia utente non può essere molto migliore.

9

HTML e CSS non forniscono animazioni o un'interfaccia utente ricca ai tuoi piedi. Lontano, infatti. Piuttosto il contrario. Dovrai investire in un toolkit per fornire quel tipo di funzionalità e quasi certamente coinvolgere JavaScript. E anche se non vuoi che la tua eventuale applicazione sia ospitata in un browser, la tua applicazione dovrà ospitare un browser web per rendere la tua interfaccia utente HTML/CSS/JavaScript, e avrai quindi un compito molto più difficile di connettere il tuo GUI per la logica della tua applicazione (a meno che tu non abbracci effettivamente l'architettura di un'applicazione web).

Delphi (o qualsiasi altro linguaggio di sviluppo di applicazioni di Windows per questo) si ottiene molto, molto più in basso la strada verso una ricca interfaccia utente più semplice, efficace e rapido implementato di HTML o CSS.

Se non ti piace l'aspetto dei comandi Delphi standard (che in sostanza è quello che stai dicendo) ci sono numerose librerie alternative disponibili.

Tenere presente, tuttavia, che quando qualcuno utilizza un'applicazione Windows, si aspetta che si comporti in un certo modo in un certo senso. Usare paradigmi di fantasia, basati sul web in un'applicazione desktop, semplicemente per il gusto di farlo, può confondere e frustrare gli utenti se preso troppo lontano.

Sono tutto per interfacce utente che rompono con le convenzioni dove porta a un'interfaccia utente più intuitiva, ma essere semplicemente "più carina" non conduce necessariamente in quella direzione ed è altrettanto fuorviante quanto aderire dogmaticamente alle convenzioni.

+1

Anche se non discuterò con queste risposte nel 2010, ora, nel 2015, questa risposta non è più rilevante. Il progresso di HTML5, CSS3 e framework come AngularJS (e componenti come BootstrapUI) e le loro prestazioni li rendono candidati ideali per l'integrazione nelle applicazioni Delphi. –

+0

@Peter - Credo che sia per questo che le risposte (e le domande) mostrano chiaramente la data e l'ora. ;) La retro-modifica di tutto il contenuto su SO per rilevanza continua non è pratica. I consumatori del contenuto dovranno semplicemente applicare un po 'di buon senso che temo. Naturalmente, in questo caso particolare, Delphi si è trasferito in modo significativo. Con FMX (che lo adori o lo odi) le cose che l'OP ha chiesto (animazione, non VCL, ecc.) Sono più facilmente a portata di mano senza dover raggiungere l'HTML. :) – Deltics

+0

Sono perfettamente d'accordo con te. E sì, Delphi ha fatto molta strada in termini di interfaccia utente e facilità d'uso, ma credo che alcune persone continueranno a cercare di integrare componenti web (come AngularJS o EmberJS). Ho semplicemente sentito il bisogno di sottolineare che chiunque cerchi una risposta aggiornata alla domanda dell'OP potrebbe aver bisogno di guardare oltre. –

2

opzione HTML 1

Se relly desidera utilizzare HTML + CSS (+ JavaScript) per costruire una GUI, si può dare un'occhiata a HTML Applications, un concetto molto interessante da Microsoft. Applicazioni HTML, file .hta, sono state supportate da Windows ME, se non ricordo male, e sono ancora supportate su Windows 7.

Si può creare un'applicazione HTML (cioè un file HTA), e così facendo, creare una GUI usando solo HTML, CSS e JavaScript. Quando l'utente fa doppio clic sul file HTA, si aprirà come un programma, ma la GUI è interamente basata su HTML; infatti, l'intera finestra è una finestra di Internet Explorer sotto mentite spoglie.

E ora arriva la parte importante: è possibile creare applicazioni Delphi non GUI (ad esempio, applicazioni Delphi che non sono applicazioni console, ma che non hanno moduli) e avviarle tramite hyperlink (o JavaScript) dal proprio HTA GUI. (Beh, probabilmente è meglio creare una di queste applicazioni Delphi, e utilizzare gli argomenti della riga di comando (ParamStr s) per comunicare l'azione desiderata.)

Solo un'idea ...

opzione HTML 2

In alternativa, è possibile creare una normale applicazione GUI Delphi, ma riempire l'intero modulo principale con un TWebBrowser (un controllo IE), utilizzando Align := alClient. Quindi è possibile caricare pagine HTML statiche (memorizzate nella cartella Programmi o su Internet) oppure utilizzare Delphi per creare dinamicamente pagine HTML da mostrare. Penso che sia possibile intercettare i collegamenti dal controllo, in modo da poter rispondere ai collegamenti usando il codice Delphi.

Che dire di OpenGL?

Se si desidera "staccare" dal normale aspetto di Windows, quindi si consiglia di creare la GUI utilizzando OpenGL. È molto facile creare un'applicazione Delphi con OpenGL (a patto che abbiate familiarità con OpenGL) - basta aggiungere "OpenGL" all'elenco uses.

1

Prima di tutto: sono completamente d'accordo con la risposta di Deltics.

Detto questo, se si padroneggia HTML e CSS (e JavaScript e AJAX ecc. Ecc.) E si sta cercando un modo per utilizzare la potenza e la velocità del compilatore Delphi per eseguire le dinamiche di un sito Web, questo potrebbe essere di interesse.

Ho creato un progetto che utilizza il compilatore Delphi per creare una libreria che esegue un sito Web. I file sorgente combinano HTML e Delphi, in modo molto simile agli altri strumenti di scripting Web, ma vengono elaborati in un aggiornamento della pagina e compilati automaticamente. Utilizza un "gestore di librerie" che collega la libreria del sito Web praticamente a tutto ciò che ti piace: IIS, Apache, un server HTTP autonomo (per l'hosting) o direttamente in InternetExplorer o FireFox (che è ottimo per lo sviluppo).

http://xxm.sourceforge.net/

1

Le nuove versioni di Qt contengono possibilità di utilizzare html/js per le interfacce. Non so se ci sono associazioni di librerie Qt per Delphi, ma Qt è esattamente quello che vuoi.

0

Se si desidera mantenere il vostro Delphi/Pascal oggetto 'background' e hanno un Web come RIA si hanno anche uno sguardo al Morfik: link text

+0

Morfik richiede un server e tu lo sai. –

+0

@JonLennartAasenden Strano commento! La domanda non diceva "senza server" e la mia risposta era solo per "aprire" le menti. Quindi, io non sono uno specialista di Morfik ma sembra che si tratti di soluzioni "senza server": http://wiki.morfik.com/wiki3/Deployment_on_Windows#Stand-alone-xapp – philnext

+0

Ho il mio sistema: http://www.op4js.com –

1

per Rich GUI e animazione, hai guardato KSDev DXScen e VGScene?

+1

Ora è chiamato FireMonkey e fa parte di Delphi. – Torbins

Problemi correlati