2010-07-04 29 views
12

Tôi muốn phát triển một ứng dụng delphi với giao diện người dùng đồ họa HTML/CSS, không nhất thiết phải chạy từ bên trong trình duyệt web. Tôi muốn làm điều này để tạo ra một giao diện người dùng đồ họa phong phú hơn với hình ảnh động vv và thoát khỏi các thành phần VCL bình thường/giao diện Windows. Bất kỳ đề xuất?Delphi với giao diện HTML/CSS

+6

Tôi không mong đợi CSS + HTML mang giao diện người dùng phong phú hơn ứng dụng cửa sổ gốc nơi bạn có thể tận dụng lợi thế của GPU, ... Bạn đã xem .NET và WPF chưa (http://windowsclient.net) /)? Có các công cụ phát triển miễn phí có thể giúp bạn bắt đầu. –

+1

bạn có biết Intraweb không? nếu tôi nhớ tốt nó đến miễn phí từ delphi7. Trân trọng, Radu – RBA

+0

Khi phát hành RAD Studio XE2, bạn có thể sử dụng Firemonkey cho các ứng dụng HD phong phú. Tuy nhiên Firemonkey vẫn còn rất thô sơ và sớm, vì vậy tôi không nhất thiết phải giới thiệu nó, nhưng nó có tiềm năng cao cho XE3 cho Windows 8 ... –

Trả lời

8

Trong một trong những ứng dụng của tôi Tôi có một trình duyệt nhúng và tôi có triển khai giao diện IDocHostUIHandler. Điều này cho phép tôi để lộ một đối tượng COM thông qua phương thức "GetExternal". Tôi chỉ đơn giản có một đối tượng COM cho thấy các phương thức và các thuộc tính của ứng dụng của tôi, nó làm cho chúng có sẵn cho các trang web được lưu trữ bên trong trình duyệt được nhúng.

Vì vậy, tập lệnh trong các trang web của tôi có các dòng như "external.DoSomething()" và "i = external.GetThisValue()". Vì vậy, ví dụ, đằng sau các sự kiện onclick nút bạn có thể chạy một phương thức của ứng dụng của bạn (thực hiện trong biểu mẫu chính, trong đối tượng COM chính nó, hoặc bất cứ điều gì bạn thích).

Trang web này có rất nhiều thông tin về việc nhúng một trình duyệt trong ứng dụng Delphi của bạn: http://www.delphidabbler.com/articles?article=22

Nó chắc chắn có thể rườm rà để thực hiện rất nhiều công cụ này và trong nhiều trường hợp có những lựa chọn có lẽ tốt hơn. Nhưng với mục đích cụ thể của tôi, tôi có thể cung cấp "trang chủ" có thể dễ dàng sửa đổi để bố cục, xem và thậm chí phơi bày nhiều chức năng hơn (hoặc ít hơn) theo yêu cầu của bản thân hoặc người dùng của tôi.

+1

Cảm ơn tất cả mọi người vì tất cả các phản ứng tuyệt vời !! Bạn đã cho tôi rất nhiều lựa chọn để khám phá. Tôi nghĩ rằng những gì tôi đang cố gắng để đạt được câu trả lời của Jenakai là đặt cược tốt nhất của tôi.Một lần nữa cảm ơn tất cả mọi người. Trang web này hoàn toàn tuyệt vời! –

4

Nếu bạn muốn chương trình Delphi có giao diện đẹp hơn, HTML là thực sự là không phải những gì bạn đang tìm kiếm. Những gì bạn thực sự cần là các điều khiển VCL đẹp hơn.

Hãy xem xét Điều khiển trơn TMS, ví dụ. Nếu bạn đang ở trên Delphi 2009 hoặc 2010, bạn có thể tải xuống miễn phí here. Đó là một trong nhiều thư viện thành phần có thể mang lại giao diện người dùng slicker cho chương trình của bạn.

4

HTML/CSS cung cấp một số tính năng tốt đẹp (chưa có?) Có sẵn trong Delphi và VCL. Chúng cũng là một điểm khởi đầu tốt cho lập trình máy khách/máy chủ, tách giao diện người dùng và logic nghiệp vụ là yếu tố then chốt ở đây.

Một thư viện phổ biến cho Delphi là extpascal project:

ExtPascal là một Object Pascal (Delphi, FreePascal/Lazarus) wrapper/ràng buộc cho Ext JS, một hoàn GUI Ajax khuôn khổ, thực hiện trong JavaScript , cho Ứng dụng Internet phong phú (RIA) phát triển. ExtPascal cho phép bạn sử dụng Ext JS từ các lệnh Object Pascal do máy chủ cấp. Nó mang cấu trúc và cú pháp nghiêm ngặt của đối tượng P2 Pascal để lập trình web trình duyệt. ExtPascal sẽ quấn Draw2d vào các bản phát hành trong tương lai.

Một số bản demo đang online herehere.

p.s. và tôi thực sự thích hỗ trợ HTML/CSS cho kích thước phần tử và phông chữ trong các đơn vị tương đối (cho phần trăm exampe). Kết hợp với phóng to/thu nhỏ trình duyệt và WCAG, thái độ giao diện người dùng không thể tốt hơn nhiều.

9

HTML và CSS sẽ không cung cấp hoạt ảnh hoặc Giao diện người dùng phong phú cho đôi chân của bạn. Xa từ nó, trong thực tại. Khá ngược lại. Bạn sẽ cần phải đầu tư vào một bộ công cụ để cung cấp loại chức năng đó và gần như chắc chắn liên quan đến JavaScript. Và ngay cả khi bạn không muốn ứng dụng cuối cùng của bạn được lưu trữ trong trình duyệt web, ứng dụng của bạn sẽ phải lưu trữ trình duyệt web để hiển thị giao diện người dùng HTML/CSS/JavaScript của bạn và sau đó bạn sẽ gặp khó khăn hơn trong việc kết nối GUI cho logic ứng dụng của bạn (trừ khi bạn thực sự nắm lấy kiến ​​trúc ứng dụng web).

Delphi (hoặc bất kỳ ngôn ngữ phát triển ứng dụng Windows nào) sẽ giúp bạn nhiều, nhiều hơn tiếp tục xuống con đường hướng tới Giao diện người dùng phong phú hơn, hiệu quả và nhanh chóng hơn HTML hoặc CSS.

Nếu bạn không thích giao diện của các điều khiển Delphi chuẩn (mà thực chất là những gì bạn đang nói) có rất nhiều thư viện thay thế có sẵn.

Cũng xin lưu ý rằng khi ai đó sử dụng ứng dụng Windows, họ mong đợi nó trông và hành xử theo một cách nhất định ở mức độ lớn. Sử dụng mô hình dựa trên web, ưa thích trong một ứng dụng dành cho máy tính để bàn đơn giản vì lợi ích của nó có khả năng gây nhầm lẫn và làm người dùng thất vọng nếu bị quá xa.

Tôi là tất cả các giao diện người dùng phá vỡ quy ước nơi nó dẫn đến giao diện người dùng trực quan hơn, nhưng đơn giản là "đẹp hơn" không nhất thiết dẫn theo hướng đó và chỉ là sai lầm khi tuân thủ theo quy ước.

+1

Trong khi tôi sẽ không tranh luận với câu trả lời này có nghĩa là trở lại trong năm 2010, bây giờ, vào năm 2015, câu trả lời này không còn phù hợp nữa. Sự tiến bộ của HTML5, CSS3 và các khung công tác như AngularJS (và các thành phần như BootstrapUI) và hiệu suất của chúng làm cho chúng trở thành những ứng cử viên khả thi để tích hợp trong các ứng dụng Delphi. –

+0

@Peter - Tôi đoán đó là lý do tại sao các câu trả lời (và câu hỏi) có ngày/giờ hiển thị rõ ràng. ;) Retro-chỉnh sửa tất cả các nội dung trên SO cho sự liên quan liên tục là không thực tế. Người tiêu dùng nội dung đơn giản sẽ phải áp dụng một số ý thức chung mà tôi sợ. Tất nhiên trong trường hợp cụ thể này Delphi chính nó đã di chuyển đáng kể. Với FMX (yêu thích hoặc ghét nó) những thứ mà OP yêu cầu (hoạt hình, không phải VCL ...) đều dễ dàng hơn trong tầm tay của họ mà không cần phải tiếp cận HTML. :) – Deltics

+0

Tôi hoàn toàn đồng ý với bạn. Và có, Delphi đã đi một chặng đường dài, về giao diện người dùng và dễ sử dụng, nhưng tôi tin rằng một số người vẫn sẽ xem xét để tích hợp các thành phần web (như AngularJS hoặc EmberJS). Tôi chỉ cảm thấy cần phải chỉ ra rằng bất cứ ai tìm kiếm một câu trả lời cập nhật cho câu hỏi của OP có thể cần phải nhìn xa hơn. –

2

HTML Lựa chọn 1

Nếu bạn relly muốn sử dụng HTML + CSS (+ Javascript) để xây dựng một giao diện, bạn có thể có một cái nhìn tại HTML Applications, một khái niệm rất hấp dẫn từ Microsoft. Các ứng dụng HTML, các tệp .hta, đã được hỗ trợ từ Windows ME, nếu tôi nhớ chính xác và chúng vẫn được hỗ trợ trên Windows 7.

Bạn có thể tạo một ứng dụng HTML (ví dụ: tệp HTA), và bằng cách thực hiện, tạo GUI chỉ sử dụng HTML, CSS và JavaScript. Khi người dùng nhấp đúp vào tệp HTA, nó sẽ mở ra như một chương trình, nhưng GUI hoàn toàn dựa trên HTML; trong thực tế, toàn bộ cửa sổ là một cửa sổ Internet Explorer trong ngụy trang. Và bây giờ đến phần quan trọng: bạn có thể tạo các ứng dụng Delphi không phải GUI (ví dụ, các ứng dụng Delphi không phải là các ứng dụng giao diện điều khiển, nhưng không có biểu mẫu nào) và bắt đầu chúng thông qua siêu liên kết (hoặc JavaScript) từ bên trong của bạn HTA GUI. (Vâng, nó có lẽ là tốt hơn để tạo ra một ứng dụng Delphi như vậy, và sử dụng đối số dòng lệnh (ParamStr s) để giao tiếp hành động mong muốn.)

Chỉ cần một ý tưởng ...

HTML Lựa chọn 2

Hoặc, bạn có thể tạo ứng dụng GUI Delphi bình thường, nhưng điền vào toàn bộ biểu mẫu chính bằng TWebBrowser (điều khiển IE), sử dụng Align := alClient. Sau đó, bạn có thể tải các trang HTML tĩnh (được lưu trữ trong thư mục Program Files hoặc trên Internet), hoặc bạn có thể sử dụng Delphi để tự động tạo các trang HTML để hiển thị. Tôi nghĩ rằng nó có thể đánh chặn các liên kết từ điều khiển, để bạn có thể trả lời các liên kết bằng cách sử dụng mã Delphi.

Còn OpenGL thì sao?

Nếu bạn muốn "tách rời" khỏi giao diện Windows bình thường, thì tôi khuyên bạn nên tạo GUI bằng cách sử dụng OpenGL. Nó là rất dễ dàng để làm cho một ứng dụng Delphi với OpenGL (miễn là bạn đã quen thuộc với OpenGL) - chỉ cần thêm "OpenGL" vào danh sách uses của bạn.

1

Đầu tiên: Tôi hoàn toàn đồng ý với câu trả lời của Deltics. Có nói rằng, nếu bạn nắm vững HTML và CSS (và JavaScript và AJAX, v.v.) và bạn đang tìm cách sử dụng sức mạnh và tốc độ của trình biên dịch Delphi để chạy động lực của một trang web, điều này có thể là lãi.

Tôi đã tạo một dự án sử dụng trình biên dịch Delphi để xây dựng thư viện chạy một trang web. Các tệp nguồn kết hợp HTML và Delphi, giống như các công cụ tạo script trên web khác, nhưng được xử lý trên trang làm mới và được biên dịch tự động. Nó sử dụng một 'trình xử lý thư viện' cắm vào thư viện trang web vào bất kỳ thứ gì bạn thích: IIS, Apache, một máy chủ HTTP độc lập (để lưu trữ), hoặc trực tiếp vào InternetExplorer hoặc FireFox (rất tuyệt để phát triển).

http://xxm.sourceforge.net/

1

Phiên bản mới của Qt chứa khả năng sử dụng html/js cho các giao diện. Tôi không biết nếu có ràng buộc thư viện Qt cho Delphi, nhưng Qt là chính xác những gì bạn muốn.

0

Nếu bạn muốn giữ delphi bạn/Pascal Object 'background' và có một web như RIA bạn cũng có một cái nhìn để Morfik: link text

+0

Morfik yêu cầu máy chủ và bạn biết điều đó. –

+0

@JonLennartAasenden Bình luận lạ! Câu hỏi did'nt nói 'không có máy chủ' và câu trả lời của tôi chỉ là cho 'mở' tâm trí. Vì vậy, tôi không phải là một chuyên gia Morfik nhưng có vẻ như là các giải pháp để triển khai 'không có máy chủ': http://wiki.morfik.com/wiki3/Deployment_on_Windows#Stand-alone-xapp – philnext

+0

Tôi có hệ thống của riêng mình: http://www.op4js.com –

1

cho GUI và hoạt ảnh phong phú, bạn đã xem KSDev DXScenVGScene chưa?

+1

Bây giờ nó được gọi là một FireMonkey, và là một phần của Delphi. – Torbins

Các vấn đề liên quan