Smart Mobile Studio
  • News
  • Forums
  • Download
  • Store
  • Showcases
    • Featured demos
    • The Smart Contest 2013, Round 1 – Graphics
  • Documentation
    • Get the book
    • System requirements
    • Prerequisites
    • Getting started
      • Introduction
      • Application architecture
      • The application object
      • Forms and navigation
      • Message dialogs
      • Themes and styles
    • Project types
      • Visual project
      • Game project
      • Console project
    • Layout manager
    • Networking
      • TW3HttpRequest
      • TW3JSONP
      • Loading files
  • About

Monthly Archives: September 2017

Smart 2.9.9 [alpha] is here!

Posted on 14.09.2017 by Jostein Posted in News

We are proud to release Smart Mobile Studio 2.9.9!

This is an Alpha Version of the upcoming version 3.0.0. We’ve been making so much changes and new features, that listing them all is next to impossible.

A lot of work has been done to make this the fastest and most stable version of Smart Mobile Studio with great support for all major browsers and mobile devices.

How to download this alpha?

Simple. Click here to download the ZIP containing portable version 2.9.9.34. Unpack it into any folder.

If you have a valid Smart Mobile Studio license, copy file user.lic to that folder, too.

Start SmartMS.exe. If you don’t have a license, you can click the button “Request trial license” to get a free 35-day trial key.

You can also periodically run program SmartUpdate.exe to check if Alpha was updated.

What’s new?

Following list reflects just the most important changes:

  • New TW3ScrollControl, TW3ScrollBox
  • Supports MomentumScroll
  • Supports touch
  • Supports both scroll bars and indicators
  • New TW3ListBox
    • Supports desktop and mobile devices
    • Very fast
    • Can have huge number of lines
    • Dynamic item draw
      • Only draws visible lines
      • Can be customized with OnShowItem to produce TVirtualListBox-kind of features
    • New events for “refresh by pulling list down”:
      • OnPullStart
      • OnPullMove
      • OnPullEnd
    • Old one renamed: TW3ListView
  • New TW3Label
    • Very fast
    • Supports Word wrap, autosize and both horizontal and vertical alignments
  • New control: TW3CheckListBox
  • New control: TW3TabControl
    • Smooth scrolling and tab changes
  • New control: TW3BitBtn
  • EventManager
    • Fixes a lot of problems when dealing with mouse and touch events
      • Events firing at multiple controls
      • Mouse getting stuck while releasing mouse button outside of the browser window
    • Listens to both mouse and touch events
    • Can convert touch events to mouse events, so one only has to listen to OnMouseDown, OnMouseMove and OnMouseUp
    • New events for scrollable controls:
      • TW3CustomControl.OnBeginMovement
      • TW3CustomControl.OnEndMovement
      • TW3CustomControl.OnVerticalMovement
      • TW3CustomControl.OnHorizontalMovement
      • TW3CustomControl.OnAllMovement
    • New properties for TW3CustomControl:
      • SimulateMouseEvents: SMS generates OnMouseDown, OnMouseUp and OnMouseMove events also from touch events.
      • TransparentEvents: If true, events are passed to the parent control.
  • IDE: Bug fixes and improvements

A lot more listed here:
https://jonlennartaasenden.wordpress.com/2017/02/06/smart-pascal-changes/

Known bugs/issues

  • Project options/Linker/Add Source map results in an exception during compile.
  • There are graphical glitches in the internal browser. For example: Combobox list.
    While these may look weird, they do only show up in the internal browser and do not affect how your app behaves in a browser.
  • TW3TabHeaders does not have styling for all platforms.
  • Compile and Execute while the Internal Browser window is visible results in a white window.
    Just close and hit Execute again.
  • Styles are still not completely finished. Default style works best while other styles may have issues.

Guide for porting your old projects

If the compiler can’t find:

  • TPoint, TRect or other graphics related types, add System.Types.Graphics to the uses clause.
  • TW3EventRepeater, change SmartCL.Time to System.Time in the uses clause.
  • TW3Component, add System.Widget to the uses clause.
  • Memory buffers, change SmartCL.Buffers to System.Memory.Views in the uses clause.
  • Local storage, add SmartCL.Storage.Local to the uses clause.

Code changes

  • Old: Canvas.Font := ’14px sans-serif’;
    New: Canvas.FontStyle := ’14px sans-serif’;
  • Old: Http.SetRequestHeader(‘Content-Type’, ‘application/x-www-form-urlencoded’);
    New: Http.RequestHeaders[‘Content-Type’] := ‘application/x-www-form-urlencoded’;
  • Old: EncodeURIComponent()
    New: TString.EncodeURIComponent()
  • Old: VariantToObj()
    New: TVariant.ToObject()
  • Old: w3_Callback()
    New: TW3Dispatch.Execute()
  • Old: w3_SetInterval()
    New: TW3Dispatch.SetInterval()
  • Old: w3_ClearInterval()
    New: TW3Dispatch.ClearInterval()
  • Old: w3_SetTimeout()
    New: TW3Dispatch.SetTimeOut()
  • Old: w3_ClearTimeout()
    New: TW3Dispatch.ClearTimeOut()

If you are using the old TW3ListBox and features that are not available in the new TW3ListBox, change all TW3ListBox -> TW3ListView.

If you are listening on mouse and touch events through Control Handle or addEventListener,

  • Use standard TW3CustomControl.OnClick, OnMouseMove, OnMouseDown, OnMouseUp etc.
  • If you want to also support touch events, set TW3CustomControl.SimulateMouseEvents:=True;

If you call Resize in your own code, change the call to Invalidate. Invalidate calls resize with a short delay. And if there are multiple calls to Invalidate before the timer has triggered a resize, the extra calls will be ignored resulting in a lot faster app.

Pages

  • About
  • Feature Matrix
  • Forums
  • News
  • Release History
  • Download
  • Showcases
    • The Smart Contest 2013, Round 1 – Graphics
  • Store
  • Documentation
    • Creating your own controls
    • Debugging, exceptions and error handling
    • Differences between Delphi and Smart
    • Get the book
    • Getting started
      • Introduction
      • Local storage, session storage and global storage
      • Application architecture
      • The application object
      • Forms and navigation
      • Message dialogs
      • pmSmart Box Model
      • Themes and styles
    • Layout manager
    • Networking
      • Loading files
      • TW3HttpRequest
      • TW3JSONP
    • Prerequisites
    • Real data, talking to sqLite
    • System requirements
    • Project types
      • Visual project
      • Game project
      • Console project

Archives

  • December 2019
  • December 2018
  • November 2018
  • July 2018
  • June 2018
  • February 2018
  • September 2017
  • April 2017
  • November 2016
  • October 2016
  • September 2016
  • April 2016
  • March 2016
  • January 2016
  • October 2015
  • September 2015
  • July 2015
  • April 2015
  • January 2015
  • December 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • November 2011
  • October 2011
  • September 2011

Categories

  • Announcements (25)
  • Developers log (119)
  • Documentation (26)
  • News (104)
  • News and articles (16)

WordPress

  • Register
  • Log in
  • WordPress

Subscribe

  • Entries (RSS)
  • Comments (RSS)
© Optimale Systemer AS