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: December 2019

Smart Mobile Studio 3.9.1 is released

Posted on 20.12.2019 by Jarto Tarpio Posted in News

Smart Mobile Studio 3.9.1 is released

We are proud to release Smart Mobile Studio 3.9.1. This is the first Alpha release of the upcoming Smart Mobile Studio 4.0. The biggest improvement is the new WYSIWYG Designer, which takes developing visual applications in SMS to a new level. The compiler was updated with a new version of DWS (Delphi Web Script) and the IDE uses an updated Chromium component. On top of this, there are new components and improvements to the RTL.

We’ve attempted to keep this release as much backwards compatible as possible, so old projects should compile and run without changes.

The new Designer is written from scratch in Smart Mobile Studio itself and runs inside the IDE in an embedded Chromium browser. It uses Websockets to communicate with the IDE itself. As the Designer is an HTML4 application, it’s able to display accurately what all the components look like, instead of the dull old boxes in the old designer. You can set Align, Anchors, Angle, styles and any other properties and see exactly how they look like visually. You can also add a TW3TabControl and add and edit contents inside any tab.

The new Designer also supports non-visual components. Out of existing components in the RTL, TW3Timer, TW3HttpRequest and TW3WebSocket were added to the component palette in this release, but many more can also be added easily. This brings Smart Mobile Studio a lot closer to the way developers are used to work in Delphi.
The new Designer also has proper Undo-support and extensive copy-paste, even between multiple instances of SMS.

The RTL contains a new TW3PopupMenu-component along with a Menu Editor. The popup menu can be added to any component easily, by using any button as a Hamburger Menu or by using it as a traditional popup menu by right-clicking on a component. The designer itself uses the new TW3PopupMenu for any editing actions.

There is also a new TW3FormResizer-controller, which can be used to make any component resizable and draggable. It’s used in Designer’s Wizard forms.

The biggest changes in the RTL are related to constructing of forms when the application is starting. The code that the IDE generates for all the visual components makes sure that the components are ready before setting properties or creating child components. The RTL also properly waits until every single component is created, initialized and sized before calling InitializeForm. This eliminates tricky situations where a component was accessed, resized or hidden at the wrong time.

Some big changes were also made to TW3Application.ShowModal. In previous versions the OnInit(), OnOk() and OnCancel() -callbacks passed Dialog: TW3CustomForm as parameter. This was changed to passing ModalInfo: TModalInfo. You can access the modal form through ModalInfo.ModalForm to set and read parameters. Finally, call ModalInfo.Close in the OnOk- or OnClose-callback to properly close the modal form. There is also a new Application.ShowModalForm()-procedure, which lets you show any form as modal.

Installation

This Alpha-version can be downloaded with the SmartUpdate utility. Select the ALPHA -channel for this version.

Known issues and limitations

– The IDE may not always close properly leaving an extra SmartMS.exe or CEF4Delphi.exe process hanging. If this happens, they can be terminated through Task Manager.
– The designer currently only uses the default theme.
– Selecting multiple components for moving/editing is not yet implemented.
– TW3StringGrid does not yet have a Wizard.
– More advanced components like the Ace editor, TW3GoogleMaps and TW3LeafletMap do not show a WYSIWYG designer component. This is by design as they’d bloat the designer with huge amounts of external code.

Changes since 3.0.2

20.12.2019

IDE:
– New WYSIWYG Designer, which is a huge improvement over the original visual designer
– Made in Smart Mobile Studio itself.
– Visualizes every property including align, anchor, angle, styles
– Supports non-visual components like TW3Timer and TW3PopupMenu
– Allows advanced editing of controls, like TW3TabControl pages and contents
– Supports Wizards (TW3PopupMenu)
– Supports cut/copy/paste correctly using System clipboard
– Has extensive Undo-support
– Improved code generator for generating Form impl-code
– When an event is created, add missing dependency units for function parameters too
– Improved handling of Anchors
– Anchors can be set in the Object Inspector
– Added two new properties: AnchorGapRight and AnchorGapBottom.
These are set by the Designer to the distance of the bottom right corner
from the parent bottom right corner.
– Add new Welcome Page, which was made in Smart Mobile Studio itself.
– Update internal Chromium browser
– Update DWS to version 20190215.0

Most important RTL-changes:
– Improvements to constructing of forms when the application is starting.
– The code that the IDE generates for all the visual components makes sure
that the components are ready before setting properties and creating
child components.
– The RTL makes sure to wait until every component is created and initialized
before calling InitializeForm.
– These changes eliminate tricky situations where a component was accessed
or resized at the wrong time or a form was hidden while it was being built.
– Callbacks in ShowModal changed to pass ModalInfo as parameter instead of Form.
– You can still access the form through ModalInfo.ModalForm
– Close the modal form in OnOk() or OnCancel() by calling ModalInfo.Close
– New TW3Application.ShowModalForm
– Application.FormsArray will now only contain the forms that were automatically
created and registered during application startup.
– Change GetVisible to only check visibility-style from the component itself
– Add new IsVisible, which checks any other reasons for a component’s visibility,
like for example if the parent is visible.
– Change GetTop, GetLeft, GetHeight and GetWidth to read values from computed style,
which lets us read these values also when the component or form is hidden.

Additional RTL-changes:
– New TW3PopupMenu, which can be added to any component easily, by using a button
as a Hamburger Menu or by using it as a traditional popup menu by right-clicking
on a component. The new Designer has a Wizard for editing the menu items.
– Improvements to TW3ScrollBox
– AutoUpdate-property. If true, the scrollbox monitors changes in child components
and updates itself automatically.
– ForceParent-property. If true, child components are automatically moved
to the Content- component.
– Child components can be added to the ScrollBox in the new Designer.
– TW3TabControl: Tabs and Tab contents can be edited in the new Designer.
– New versions of TW3CheckBox and TW3RadioButton. Uses only CSS for resizing.
– Bug fixes to TW3ToggleSwitch
– Improvements to EventManager:
– Make OnAllMovement compatible with SetCapture
– Prevent extra OnClick when using SetCapture
– Make sure that more advanced components stop painting contents when the component
is not visible (for example: TW3ListBox, TW3TabControl, TW3ScrollBox)
– New TW3URL, which contains URL parameter handling like Delphi’s ParamStr, ParamCount etc.
– New controller: TW3FormResizer, which can be used to make a form (or any other control)
resizable and draggable.
– Move initialization of Label alignment styles to SmartCL.Css.Stylesheet,
so they can be used in other units as well
– Add TPoint.MoveBy
– Add DateTimeToLocal and LocalDateTimeToUTC to DateUtils
– Parent can now be changed, so components can be moved to different parents just like in Delphi
– Add support for Background position
– Change w3_getPropertyAsInt to return 0 if value is NaN
– Animations and some other browser specific CSS did not work properly in Firefox
due to wrong Browser-prefix.
– Bug fix to setting the cursor by name.
– Fix numerous bugs in TW3EdgeSenseController.
– Bug fixes to BringToFront and SendToBack

18.7.2019

IDE:
– Zip Entire Project did not include Form .sfm -files

RTL:
– Bug fixes to TW3TabControl

6.7.2019

IDE:
– Anchors (and other sets) can be set in the Object Inspector
– Improvements to generated Form implementation code:
– Wait until created components are ready before setting properties and creating children
– Set Anchors last
– Prevent conflicting keyboard shortcuts from being saved
– Use better default project options (no manifests, do not embed Javascript)
– Add new units to units defaults and improve formatting

RTL:
– Add xml-js to Libraries.
– New ECMA.Promise unit from api docs
– System.JSON:
– Support for adding/setting JSON arrays
– Add TJSONObject.Delete
– Set form size to 100% before calling InitializeObject
– Add missing units to SmartCL.Controls
– Setting control’s angle did not work in Firefox
– Don’t raise an exception while freeing a form which is not registered
– Themes: default styles were not applied for all elements in Android and iOS
– Fixes a bug where textarea’s size is too big in TW3Memo

24.4.2019

RTL:
– Anchors and Align-support to the RTL.
– Support in the IDE is currently being worked on. Currently Anchors can
only be set in code. Align can be set in the Object Inspector, but the
changes are not reflected in the designer.
– Bug fix to BoundsRect
– Themes: New background for highlighting errors: bsErrorBackground
– TW3StringGrid:
– New event for setting custom row borders and backgrounds: OnDrawGridLineTheme

14.4.2019

RTL:
– Improvements to TW3StringGrid:
– New columns types:
– TW3StringGridNumericColumn
– TW3StringGridButtonColumn
– Added sorting
– New event: OnCellChanged
– TStringList and TObjectList: Add Sort() with CompareFunction.
– Fix CSS browser prefix for Firefox
– Themes: Use normal size and style text in buttons.

27.3.2019

RTL:
– New control: TW3StringGrid
– New featured demo for the StringGrid.
– New TW3CustomScrollControl, for developing scroll controls with scrollbars/indicators-support.
– New border types: btLightBorderTop, -Bottom, -Left, -Right, -Horiz and -Vert
– EventManager: Check TouchPreventDefault before trying to prevent extra artificial mouse events from touch events
– Improvements to TW3BlockBox and Modal dialogs:
– TW3BlockBox did not trigger a resize
– Dialogs did not get resized when window was resized or device flipped
– Make sure the dialogs are not too big

21.2.2019

Bug fixes and improvements to the IDE:
– BringToFront and SendToBack will now affect component creation order.
– Opening files from Project Search Path is fixed.

20.1.2019

RTL:
– New controls: TW3SpinButton, TW3ArrowUpButton, TW3ArrowDownButton, TW3ArrowLeftButton and TW3ArrowRightButton.
– Add 1px margin to TW3ButtonBorder to prevent the border from being clipped.
– Bug fixes to Tween.Effects

IDE:
– Bug fixes and changes to renaming of forms:
– Renaming in Project Manager will not change form class any more.
– Form class name can be renamed in Object Inspector.
– Improvements to Project Statistics:
– Only count Total time when Smart Mobile Studio IDE has focus.
– Only Count Design time when changes are made in Form Designer.
– Add clear button.
– Component Palette:
– Added new controls
– New icons for many existing controls

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