Blog

All Blog Posts  |  Next Post  |  Previous Post

TMS RADical WEB, time for some fun

Bookmarks: 

Monday, March 12, 2018

Last week, our team was brainstorming and as usual, lots of interesting and cool ideas come up. Based on these ideas, we have some more exciting technology being worked on now and coming up soon and you’ll learn about it here shortly. But, from time to time, there are also fun ideas that come up during our brainstorm sessions. One such idea was to check if it wouldn’t be possible to port an existing Pascal game to TMS WEB Core and this way, make the game available via our website for playing it directly online. We thought this was not only a good idea but also a perfect validation to see how well our TMS WEB Core performed in enabling Delphi developers to move existing code over to the web. So, our software architect Pieter Scheldeman, also the architect of the cross-framework, cross-platform FNC framework, searched for some open-source Pascal games. One of the games Pieter found was the Tetris game in the Bianco Games collection from Marco Bianchini: https://torry.net/authorsmore.php?id=800

After checking out the source code of the Tetris game a bit, we were amazed that after less than 30 minutes of work by Pieter, the game was already running in the browser!

TMS Software Delphi  Components
You can play with the game for yourself here:

https://download.tmssoftware.com/tmsweb/demos/tmsweb_tetris 

The game does all its painting via the Delphi TCanvas in a custom control. As TMS WEB Core introduces a TCustomControl class with access to a TCanvas object with the same interface as the Delphi TCanvas, the control in which the Tetris blocks fall was working quickly with almost no code changes in the web. It shows the strength of the Pascal to Javascript compiler combined with the component framework we have designed for it.

Have fun playing the Tetris game without needing to install it on your machine. We’re curious and eager to learn if you have more cool challenges to validate our TMS WEB Core technology against.

Get started today: Technical previews of TMS WEB Core, TMS FNC UI web-enabled controls, web-enabled TMS XData, the first parts under the TMS RADical WEB umbrella are exclusively available now for all active TMS-ALL-ACCESS customers.



Bruno Fierens


Bookmarks: 

This blog post has received 18 comments.


1. Monday, March 12, 2018 at 2:59:29 PM

Fantastic!!

Been playing for more than half an hour :-)

Bernaert dominique


2. Monday, March 12, 2018 at 3:30:08 PM

:)

We should add some code that allows tracking the hi-score and allow players to add their name, so your name would appear on top of the hi-score list :)

Bruno Fierens


3. Monday, March 12, 2018 at 4:30:16 PM

In unigui, there are always three confused problems for developer.

The first is that, when the client press F5 on navigator, everything begins from login form again, not just reflesh the current form as the php page.
The second is that, how to avoid click one button in twice ?
The 3rd is that, how run a showmessage(or form.showmodal) which could block the whole program? Unigui has no solution for it. It could only accept the result of modal window by callback function.

Could you have the best solution to resolve above? Waiting for your reply.
Best regards

stlcours


4. Monday, March 12, 2018 at 4:53:33 PM

Latest version of Chrome for OS X: arrow keys doesn''t work.

Blom-Dahl Christen


5. Monday, March 12, 2018 at 4:56:06 PM

Correction to my previous post: If you click with the mouse on the arrow key buttons then arrow keys does not work. Seems that focus is on the buttons and not on the tetris panel.

Blom-Dahl Christen


6. Monday, March 12, 2018 at 5:03:16 PM

Arrow key images have no function right now but are only used to explain how to use the game.

Bruno Fierens


7. Monday, March 12, 2018 at 7:32:10 PM

Hi Bruno,

there is a long time that I am waiting for the worfkflow studio in web mode.
I think it s the right time to launch this task ?
what do you think ?

eric fg
luderi sarl

Repiton Pascal


8. Monday, March 12, 2018 at 7:34:38 PM

This new technology indeed opens up perspectives to that. We have meanwhile a long list of plans and ideas, so we''ll need to see where to position this in the list of priorities.

Bruno Fierens


9. Thursday, November 22, 2018 at 11:27:25 AM

Hi Bruno,

i downloaded a trial version of TMS WebCore with the demo samples. My purpose is to compare it with Intaweb because i''ll certainly need to migrate a VCL application into Web application.
I started to watch videos and some demo samples (with code). Very interesting !
I''d like to look also the source code of Web Tretis project. Where can i find it please ?

Best regards
Stéphane

Stéphane


10. Thursday, November 22, 2018 at 5:02:01 PM

Hi Bruno,

another question please : how to add standard comments (i.e with // ou {} or (* *) ) in source code Delphi because i can''t compile the project when i add it.

Thanks
Stéphane


Stéphane


11. Friday, November 23, 2018 at 9:53:45 AM

The Tetris game source is here:
http:\\www.tmssoftware.net\public\BiancoTetris.zip

I cannot see an issue with adding comments here. What exact error do you get at what exact point?
Are you sure it is really related to the comment? Do you use any special characters in the comment text itself?

Bruno Fierens


12. Friday, November 23, 2018 at 11:35:16 AM

Hi Bruno,

thanks for zip file about Web Tetris project ! And about comments i try it again this morning : i just create a simple TMS webcore project, add a private member inside the TWebForm class and write just after on the same line this comment // c''est une fonction... (yes i ''m french developer. Sorry for my english !). Then i can''t compile (error = can''t find unit "System.SysUtils"). I think i find the issue : it doesn''t like the quote inside the comment because if i remove it, compilation will succeed



Stéphane


13. Monday, November 26, 2018 at 9:52:39 AM

Hi Bruno,

I use a WebPaintBox to draw inside it a empty rectangle with mouse events (OnMouseDown, OnMouseMove, OnMouseUp). I want to reuse existing code form Vcl project but i can''t do that because WebPaintBox1.Canvas.Pen.Mode is not recognized (i need pmNot and pmCopy values from TPenMode enumeration). compliation gets this error : identifier not found "Mode"

Best regards


Stéphane


14. Monday, November 26, 2018 at 9:27:58 PM

There is a known issue with the compiler with quotes within a comment. This is being investigated and will be fixed.

Bruno Fierens


15. Wednesday, November 28, 2018 at 2:25:54 PM

Hi Bruno,

About basic demo titled "TableControl" : is there any restriction on the location of the cars.json file ? i download and save it inside a local www directory (using by UwAmp web server). "http://localhost/cars.json" in Firefox web adress shows the content of this file. But if i change the source code line "WebTableControl1.LoadFromJSON(''http://www.tmssoftware.biz/tmsweb/demos/TMSWEB_ResponsiveGrid/cars.json'');" by "WebTableControl1.LoadFromJSON(''http://localhost/cars.json'');" for the click event of the button "Load JSON data" then NO data are displayed by the WebTableControl1. I don''t understand why ...

Best regards

Stéphane


16. Sunday, December 2, 2018 at 12:07:35 PM

Hi Stéphane,
Blog comments is not really a good interface for handling support questions. For technical support, please use channels shown here:
https://www.tmssoftware.com/site/support.asp

For loading the JSON data, what local webserver do you use and what error do you see in the console.
Please follow-up via email.

Bruno Fierens


17. Sunday, December 2, 2018 at 12:08:52 PM

Hi Stéphane,
Unfortunately, the HTML5 Canvas element used to perform the drawing has no such mode, so we can''t map the Canvas.Mode to it. Handling this ourselves at pixel level would make this very slow.

Bruno Fierens


18. Monday, December 3, 2018 at 11:44:36 AM

Hi Bruno,
thank you for your answers. I''ll use the channel support if i need to ask another questions

Stéphane




Add a new comment

You will receive a confirmation mail with a link to validate your comment, please use a valid email address.
All fields are required.



All Blog Posts  |  Next Post  |  Previous Post