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

Tag Archives: release

SPNG: Be informed when values change

Posted on 08.04.2017 by Jon Lennart Posted in Developers log, News, News and articles 2 Comments

There are many new and powerful features in the upcoming release of Smart Mobile Studio (also refered to as Smart Pascal, Next Generation: SPNG in short): One of the most powerful is the ability to be notified when a value or object changes with a single line of code.

So far TVariant has just been a helper class for dealing with typical tasks. Well, perhaps not just typical because under Smart Pascal, variants can map directly to a javascript object (of any type) and allows you direct access to its prototype. The Handle property that all visual controls have is an example of this. The type TControlHandle is actually a reference to the visual element inside the DOM (document object mode). So by accessing that directly in your code, you can change styles, attributes and properties of that element. You are not bounds to only use our pre-fabricated solutions.

In the next update TVariant have a lot of new members. Two that stands out as important: watch() and unwatch().

As their name imply they will warch something for you. In this case you wil be notified whenever a single property, a whole object or indeed – a property deep within an object is altered. It may sound trivial but it’s actually one of those features that lays the foundation for responsive, data-aware controls.

But you can use it for many other things as well. For example you can now attach an event directly to a string. And whenever that string changes (either by your code, the user, or some other script) you can act on it directly. That is pretty cool and very helpful!

  // create an empty javascript object
  var MyValue: Variant := TVariant.CreateObject();

  // Set a default value
  MyValue.NewProperty := 12; // add a property and set a value

  // We want to know when the object changes
  TVariant.Watch(MyValue, "NewProperty", procedure ()
    begin
      showmessage("You changed the value!");
    end);

In this snippet we setup a javascript object and place a named-property inside that object. We then listen for changes to that property (by name even). So if you change that value further down in the code, or by calling some procedure elsewhere – the event will fire and show the message dialog.

This is of-cource just a tiny fragment of the new code that has been added, not to mention the changes and fixes. Some of these features are presently in alpha stage and is being tested. We will post more and more news in the days and weeks ahead – and we are sure you will be pleased with some the fantastic new things you can now code!

Here is an example of the new desktop and windowing applications you can write (picture below): The smart desktop!

The Smart desktop

We decided to update the uartex Media Desktop, an example initially made for touch based embedded environments – and turned it into a fully functional desktop environment!

Both the desktop itself, the filesystem, the IO drivers and windowing toolkit is written in Smart Pascal. You can create kiosk software designed to run on embedded devices, advanced applications designed to run on your intranet – or full cloud systems. So it can run a Smart application inside each Window if you like. But you have full control over windows, file access, directly listings, menu items and can sculpt both the desktop and applications to suit your needs.

The desktop can be coupled with a node.js backend that handles multi-user login and file access. It gives your users access to designated home-folders (again under your control). So each user can have their own work files just like a thin client, and each user can run different applications from a fully working desktop environment.

Below you are seeing Quake II compiled from C/C++ to LLVM bitcode. This is in turn compiled to JavaScript via asm.js. This means the browser will compile the javascript into machine code after loading. So Quake II runs at native speed, all JavaScript, inside our desktop window.

Create windowed applications with Smart Desktop

Create windowed applications with Smart Desktop

You will also be happy to head that x86 Linux and ARM kiosk distros have been created. So once happy with your desktop you can in fact boot straight into it in fullscreen. No Linux desktop or shell — just your desktop running. Both Firefox and Chrome can be used as presenter.

Have a great easter!

announcement code demo HTML5 javascript Object Pascal OP4JS release Smart Mobile Studio Upcoming features

Smart Mobile Studio 2.2 Hotfix 2

Posted on 18.04.2016 by gabr42 Posted in Announcements, Developers log, News

As it turned out, the recent Smart Mobile Studio 2.2 Hotfix 1 introduced a big problem. Because of a regression bug in the compiler, generated programs are sometimes incorrect and don’t execute. To fix that are pushing out Hotfix 2 which contains all the updates of Hotfix 1 except the DWScript compiler which was reverted back to version 2.2.

To update, you can rerun the SmartUpdate utility [more information] or download the installer from the following locations:

  • Smart Mobile Studio 2.2 installer
  • Free command-line compiler

Changes

  • Reverted compiler to version 2.2 to fix code generation problems.
announcement Hotfix release

It’s finally here – Smart Mobile Studio 2.2

Posted on 07.04.2016 by Smart Mobile Studio Team Posted in Announcements, Developers log, News

Yes, it is true! Not a beta, not a release candidate – we have finally published The Real Thing!

For the impatient

Download and run the installer.

  • Smart Mobile Studio 2.2 installer
  • Free command-line compiler

Portable installation

Smart Mobile Studio 2.2 can also be downloaded with the SmartUpdate utility [more information]. To get the final release, you should download from the (default) Release channel.

SmartUpdate - Release channel

If you already have a SmartUpdate-installed Beta channel on your disk, you can simply upgrade it to a Release by running the SmartUpdate.exe with the /changechannel switch.

What’s new

In two words: A Lot. Version 2.2 started out as a small upgrade, but as we worked on it we added tons and tons of stuff. A long list of changes since the 2.1 release can be found below.

What about the future?

We are already working on two fronts. A version 2.3 with revamped RTL (much faster visual component library and other goodies), support for search paths in the compiler and more is already in the work. At the same time we are triaging the issue list to determine which feature and bug requests will be fixed in the 2.2.1 hotfix.

List of changes since release 2.1

Compiler

  • Updated to latest DWScript.
  • Improved Date/Time handling.
    • DateTimeZone scoped enumeration (.Default, .Local, .UTC).
    • FormatSettings.ShortDateFormat, LongDateFormat, ShortTimeFormat, LongTimeFormat, Zone.
    • An extra “utc” parameter of DateTimeZone type on many DateTime functions.
    • A new ParseDateTime function, which acts as a reverse FormatDateTime
    • ISO8601 functions (were declared but missing from the codegen)
    • FormatSettings.Zone allows setting the default behavior between Local & UTC, and the utc parameter of DateTime functions allows to override that.
    • FormatSettings does not yet expose short/long day/month names, but these are used for Formatting & Parsing dates.
    • Fixed date/time rounding issues in the JS RTL.
    • JDateHelper was moved from W3C.Date to System.Date.
  • Added VarIsArray & VarIsClear.
  • Supports “export” qualifiers for functions (use in libraries).
  • Added support for ‘~’ in asm sections.
  • Added option to generate RTTI for objects in the implementation section.
  • Added missing error message for an invalid lambda syntax.
  • Added support for floating point modulus. (see https://www.delphitools.info/2015/10/29/floating-point-modulus)
  • Added support for sets in constant records.
  • Stricter enumerations type checks.
  • Integer operators are now more “strongly” typed, facilitates use of helpers over aliased integer types.
  • Case..of type matching is now more tolerant with variants.
  • Made code suggestions in a local scope more resilient to syntax errors in that local scope.
  • Compiler displays a hint about empty then/else blocks.
  • Compiler supports comparing Variant to nil with = and <> operators.
  • Conditional compilation symbols can be passed to the smsc compiler by using -defines=list.
  • Fixed: Source files with the UTF BOM header $FEFF are supported.
  • Fixed array add type-checks for classes & sub-classes.
  • Fixed array assignment typechecks.
  • Fixed an issue which caused a slight increases in memory usage after each compilation (a leak that was not strictly a leak).
  • Fixed “Invalid variant operation” error.
  • Fixed codegen for some class parameters.
  • Fixed codegen for StrBeginsWith.
  • Fixed method type detection bug.
  • Fixed issue with external class fields being assigned in an initialization section.
  • Fixed issues with incorrect array assignments.
  • Fixed handling of overloaded methods & override.
  • Fixes related to syntax errors in connectors (like Variant / JSON).
  • Fixed codegen bug with interfaces across inherited classes.
  • Fixed issue with nested contexts.
  • Fixed missing support for “set of” record fields.
  • Fixed bug with nested constant arrays.
  • Fixed obfuscation support.
  • Fixed some bugs and memory leaks.
  • Fixed compiler bug related to strict helpers.

RTL

  • Redesigned component management resulting in much faster redraw.
    • All visual elements now has a new procedure: ObjectReady() which you should override and use to adjust and set object values.
    • Added the property “ComponentState” as used by Delphi and FreePascal.
  • Added Indexed Database API W3C.IndexedDatabase (http://www.w3.org/TR/IndexedDB/).
  • Added System.Memory.
    • Marshaled pointer support, combined with support for Move, FillChar and all the other “memory” methods.
  • Added System.TypeCon containing data conversion classes.
  • Added System.DateUtils, capable of handling both local and UTC time.
  • Added System.Dataset unit containing in-memory database.
  • Added new system units: System.Streams, System.IO,  System.FileUtils, System.Messages.
  • Added Pixi.js library.
  • Added SmartCL.Legacy.pas containing Delphi-style TCanvas, TBitmap, and file path functions.
  • Added SmartCL.PageDiv unit, for managing a fixed buffer of abstract elements divided into pages. This is used by database navigators, thumnail viewers and anything which displays a fixed number of items out of a large whole.
  • Added simple label control SmartCL.Components.SimpleLabel.
  • Added TSimpleButton, a simple, rounded iOS standard button without gradients.
  • QTX Effects added to SmartCL.Effects.pas
  • Screen API wrapped in the TW3Screen class (accessible through the TApplication.Screen property).
    https://developer.mozilla.org/en-US/docs/Web/API/Screen
  • Improved TW3Image.
  • Defined ‘file’ input type for TEdit.
  • Added “Element” property (exposes the JXMLHttpRequest object) to TW3HttpRequest.
  • Added ResponseToMemory and ResponseToStream to TW3HttpRequest.
  • Added TW3WebSocket to SmartCL.Inet.
  • Added mousewheel support to scrollbars.
  • Added support for the Page Visibility API.
  • Added WebVR (Editors Draft) API.
  • Added font loading API (see http://www.w3.org/TR/css-font-loading/).
  • Added events OnActivate and OnDeactivate to TW3CustomForm.
  • Added cryptographic header translations (Cryptography API and “DRM” API).
  • Added neural network libraries Brain and Synaptic.
  • Added APIs:  W3C.Console, W3C.Push, W3C.ServiceWorkers, WHATWG.Fetch
  • Added AAC audio file support
  • Separated external objects defined by the JavaScript specification itself to a separate namespace ECMA. New units: ECMA.Date, ECMA.Json, ECMA.Math, ECMA.RegEx. RegEx class now lives in th ECMA.RegEx unit and global JSON object in the ECMA.Json unit.
  • Added System.Nullable containing nullable primitive types (see http://smartmobilestudio.com/2016/01/16/nullable-types/).
  • JEventHandler renamed to TEventHandler as it is not a native JS type. JEventHandler still exists, but is marked ‘deprecated’.
  • Completed overloads for the JJSON class.
  • Improved several of W3C APIs.
  • Updated Node.JS units.
  • Minor changes about accessing the audio tag from the Web Audio API.
  • Improved WebSocket support with binary and BLOB messages.
  • Redesigned REST API. REST API appends random number to the end by default (unless .NoRandomize is called).
  • Extended TypeScript header translation.
  • JUInt8ClampedArray was replaced with JUint8Array which has better browser support.
  • Fixed: touch events must not prevent default handler.
  • Fixed Scope confusion with CTRL + Click (namespace unit was opened instead of implementation unit).
  • Fixed modal dialog handling.
  • Fixed: Problem with ClientWidth & ClientHeight in document->body.
  • Fixed: Scrollbar math.
  • Fixed: Removed bug in ToggleSwitch where we used a “hack” to invoke a resize. This is no longer needed with the new system, so the bug and insertion of &nbsp; was removed.
  • Fixed “double free” bug in TW3Component.Destroy.
  • Fixed implementation of TMath.PI and TMath.E in Espruino.System.
  • Fixed System.Date/JDateHelper.SetAsDateTime and .SetAsLocalDateTime.
  • Fixed w3_getStyleAsFloat.
  • Fixed TW3Label positioning bug.
  • Fixed wrong declaration of JEventHandler (changed to ‘TEventHandler’ as it is rather a Pascal type declaration and not a JavaScript type).
  • Fixed TW3Dataset.Back.
  • Fixed Application.Document.ClientHeight.
  • Fixed TW3Slider component.
  • Fixed problems with TW3Label positioning.
  • Fixed TW3ScrollInfo.ScrollX and .ScrollY.

CSS

  • Added ‘None’ theme to allow CSS free simple demos using browser default.
  • New theme for Scrollbars.
  • Added CSS for TSimpleButton
  • Fixed: CSS3 form-background for Internet Explorer
  • Fixed: focus rectangle is now GONE for all themes.

IDE

  • Added: Metrics
  • Added: Project statistics
  • Added configuration option “Legacy support for IE9 (and below)”.
  • Added IDE setting to automatically save the project every N number of minutes (N is settable from 1 to 60).
  • Uses DCEF3 revision 2069 for built-in browser.
  • Improved UI with new (more) icons and a more consistent usage of fonts (now uses Segoe UI for all dialogs)
  • Improved JSON support.
    • JSON files can be added to the project.
    • Unit map shows JSON structure.
    • JSON files are available in the project generator API.
  • Improved Snippets management
    • Sort snippets after insertion
    • Renaming snippets
    • Snippets are not trimmed anymore (-> may contain leading spaces for indention)
    • (Incremental) search feature added
    • Doubleclick now pastes the snippets into the source code
  • Added: Close all tabs to the right
  • Added: Open file (tab) in explorer
  • Added: Only compile if necessary (when the project has been modified).
  • Added: Source code export tool.
  • Added: Search text highlighting.
  • Added SynEdit keystroke configuration to the IDE Settings/Keyboard page.
  • Added preferences page for internal browser configuration.
  • Added option controlling whether to add unit to the project’s uses section to the ‘new unit/form’ dialog.
  • Added unit name validation to the ‘new unit/form’ dialog.
  • Added option to have the internal browser log reversed (newest information at the top).
  • Added support for bulk deletion of several project files.
  • Added dialog to ask whether an unlinked external should be deleted upon making a project file all internal.
  • Added basic Cordova support.
  • New forms/units are external by default (on new installations).
  • Allows opening more than one file at once.
  • Introduced option for resource file path handling
  • Improved working with icons.
  • Implemented the sort project file feature.
  • Redesigned IDE Settings dialog.
  • Redesigned Project Options dialog.
  • Color is shown next to clXXX constants in the Code Insight window.
  • Implemented incremental searching in Project Manager.
  • Pressing Escape closes the Goto Line dialog.
  • Monitoring external files for changes can be turned off in IDE Settings.
  • The forms component list is now sorted
  • Welcome page can be closed.
  • Improved background compiler triggering and performance (ignores hidden designer implementation code)
  • Improved: [Enter] in project manager now opens file
  • Improved (IDE) compiler performance
  • Locate JS source code position in case of an error
  • Revived: Class browser, which now directly operates on the source code allowing to show even recent changes (in the editor).
  • Improved: Tightened XML files used by the IDE (less junk and empty tags) -> faster loading
  • Improved handling of open files that are not part of the project.
  • Improved ‘Normalize’ refactor.
  • Serial number is displayed in Help, License info.
  • Form name rename now calls rename refactoring.
  • ‘Mobile Manifest’ renamed to  ‘AppCache Manifest’.
  • Marked handled exceptions as expected so they don’t trigger EurekaLog dialog.
  • Fixed: ‘Asm’ highligher can be configured.
  • Fixed: Pressing Enter in Project Manager did not open selected unit.
  • Fixed: Search was not working for HTML source in the internal browser.
  • Fixed: If project was saved under a different name, it was not recompiled until it was modified in same other way.
  • Fixed: WriteLn messages were not always visible in logs.
  • Fixed: Switching from Project Manager to code could cause an access violation.
  • Fixed: Projects in the RTL/library folder won’t crash anymore
  • Fixed: Error in component name check (reserved words were possible)
  • Fixed: Extraction of units (in uses section) failed when comments were present within this section
  • Fixed: Automatic adding of new units now consider the right edge properly
  • Fixed: Unit scoping (namespaces) were not considered when adding new units to the uses section
  • Fixed: Node.js empty project generator created an invalid project (did not compile and needed manual tweaking of .sproj file)
  • Fixed: Messages window was visible when program was started
  • Fixed: Unit source is correctly displayed if new project or unit is created when no tabs are visible.
  • Fixed: When a new project is created, existing Unit1/Form1 files are no longer silently overwritten.
  • Fixed a problem when project files for a newly created project were not monitored for changes.
  • Fixed a problem when change was not detected if a form file (.sfm) was modified on disk.
  • Fixed issue where background compilation was performed twice on project load. The fix not only removes an internal exception, but also speeds up project loading as it only updates editor states once.
  • Fixed wrong icon for external resource files
  • Fixed: Double-clicking on a ‘folder’ icon crashed the program.
  • Fixed icon preview.
  • Fixed: Failed compilation didn’t always focus the editor.
  • Fixed issue with codegen which could crash on invalid source.
  • Fixed small issues with ‘Find in files’.
  • Fixed problems setting the linker output path.
  • Fixed ‘Open in browser’ button.
  • Fixed unnecessary limitations in ‘Keywords’ and ‘Homepage URL’ editors.

Editor/Designer

  • Updated CSS highlighter.
  • Syntax highlighting for JSON files.
  • Added visual designer guidelines.
  • Added simple ruler to the visual designer.
  • Added visual designer option to show the form’s bounds.
  • Added tool ‘Limit precision’ to the editor’s pop-up menu. This tool limits precision of numbers in the selected code.
  • Added ‘Wrap string’ feature to the editor to wrap a string which is longer than the right edge (Editor.RightEdge) to the next line(s).
  • Caret position change causes less workload (improved performance during source code navigation).
  • View state (editor/designer) is preserved in the <project>.dsk file.
  • Better live preview (less flickering).
  • Corrected ‘Show parameter’ (Shift + Ctrl + Space).
  • Improved Find&Replace dialog behaviour when executing ‘Replace all’.
  • Improved code completion.
  • Improved Ctrl+click behaviour.
  • Editor is refocused when internal browser window is closed.
  • Fixed source highlighting when double-quote was the first character in a line.
  • Fixed: Deletion of components in the designer did not mark the project as modified
  • Fixed DWS syntax highlighter for double quoted strings (did not highlight properly where delimiter was the very first character of a line).
  • Fixed: Form is marked as ‘modified’ when an event handler is created by double-clicking on a component.
  • Fixed: All controls on the form were duplicated when form was edited outside of the program while it was open in the editor.
  • Fixed event generation problem on secondary forms.
  • Fixed problems with Property Inspector and event generation (general crashes, “Invalid property value” exceptions).
  • Fixed the bug which occurred when several replacements were done in one line.
  • Fixed searching in RTL files (Find in Files, Include RTL/Library path).

Demos

  • Added DataSnap client/server demo.
  • Added DataSnap FishFacts demo.
  • Added DateTime demo.
  • Added HTML5 DOM demos.
  • Multiple demos corrected & adapted to the new RTL.
  • Added simple example for the Page Visibility API.
  • Added Splash Screen demo (http://smartmobilestudio.com/2015/09/27/writing-small-splash-screen-pre-loader-code).
  • Added a simple geolocation demo.
  • Added simple geolocation-based sunrise/sunset calculator.
  • Added a few examples to test certain cordova features (back button, audio playback [hooking its data for further processing]).
  • Improved Web Audio ABX Test demo.
  • Updated web audio examples and added new lessons.
  • Added third, manually created form to the `Multiple forms’ demo.
  • Added Layout Manager to the ‘Multiple forms’ demo to show how it is correctly used in a multiform application.
  • Updated REST demo.
  • Fixed Canvas Application demo.
  • Fixed: OnPrepare handler was not properly forwarded in SmartCL.Inet.REST.

Other

  • SmartUpdate program.
  • Unified installation for all editions.
  • Added support for “portable” installations that don’t require installation.
  • Cleaned-up default .spr file.
  • New icons.
  • Added a snippet that shows how to create a form in runtime.
finally release Version 2.2

Smart Mobile Studio 2.1 (Hotfix 2)

Posted on 11.10.2014 by Smart Mobile Studio Team Posted in Announcements, Developers log, News 1 Comment

More fixes are collected in this second hotfix release.

 

Download

You can download the installer here:

  • Basic
  • Professional
  • Enterprise
  • Educational

For information about other releases, take a look in the release history.

 

Changelog

Compiler

  • Fixed support of expressions in array insert.
  • FloatToStr is now overloaded rather than a function with a default parameter.
  • Added support for + and += operators for array concatenation.
  • Fixed issue with overloaded methods and public/private scoping.
  • Fixed scoping issues with helpers.
  • Added support for the ‘library’ keyword.
  • Parser supports default property of a property. Example: someObject.stringDictionary[‘abc’] := ‘123’;
  • Relaxed Gabelou for fields of external classes.
  • Eliminated TObject dependency from some external-class related codegen.

 

IDE

  • Fixed: ‘Code packing’ option was not stored.
  • Preferences not defaulted properly after a re-installation

 

RTL

  • Fixed some minor issues and UTF-8 encoding in the RTL
  • Shims.InternetExplorer is included if SMART_LEGACY_INTERNET_EXPLORER conditional symbol is defined.
  • Fixed setting style attributes in SmartCL.Borders.
  • Fixed code that sets font family in TW3CustomFont.
  • Added property .TextContent.
  • Added SmartCL.Controls.ScrollBox to SmartCL.Controls.
  • Removed deprecated unit warning in DataSnap.pas
  • Added JEventTarget overload (needed for older browsers).
  • Added Method, StatusClass, and URL properties to TW3HttpRequest.
  • Added Timeout and OnTimeout properties to TW3HttpRequest.
  • Added THttpHeaders class to SmartCL.Inet.
  • Added unit SmartCL.Inet.REST which simplifies sending REST requests.
  • Added function Test to string helpers in SmartCL.RegEx.
  • Fixed default Header / Toolbar controls inverse gradient colors.
  • Fixed OnTouch event handling for controls that can accept focus (memo, edit).

 

Demos

  • A Smart Book Demos are converted to 2.1 format.

 

—

Sincerely,
The Smart Mobile Studio Team

Hotfix release

Smart Mobile Studio 2.1 (Hotfix 1)

Posted on 04.09.2014 by Smart Mobile Studio Team Posted in Announcements, Developers log, News 1 Comment

We have done some improvements with v2.1, and we’ve collected these in a new hotfix release.

 

Download

You can download the installer here:

  • setup_enterprise.exe
  • setup_professional.exe
  • setup_basic.exe
  • setup_educational.exe

For other information about other releases, take a look in the release history.

 

Changelog

Compiler

  • Linker error caused by DWS filter in HTML/CSS files are reported.
  • Added ability to cast JS “Variant” to arrays.
  • Added support for initializing record fields inline in class/record declarations.
  • Better error in case of invalid array syntax.
  • Fixed issues with symbol table handling.
  • Inline resources ({$R file:’…’}) are linked properly.
  • Non-empty set constants are supported as parameters and default parameters.
  • Added support for integer<->set conversion for small sets.
  • Local (in project folder) copies of RTL files take priority during the compilation.
  • Fixed support for ‘break’ statement inside a ‘case’ statement.
  • Fixed operator precedence, operators now evaluate just like in Delphi.

 

Debugger

  • Fixed several memory corruption problems.
  • Breakpoints are disabled when debugging is not enabled.
  • JavaScript file name is shown in the stack frame.

 

IDE

  • Added resource string export.
  • When Custom CSS was selected in project options, CSS file did not appear in the Project Manager.
  • Improved Basic edition (non-functional parts are not shown).
  • Fixed “Find in Files” which reported unit name instead of file name.
  • Fixed a rare issue with QR code generation.
  • Full path name is shown in a tab hint.
  • Console messages are shown correctly when built-in browser is used.
  • Category for components can be set in the package builder.
  • A  warning is displayed if package compilation fails during IDE load.
  • “ZIP entire project” was not working properly.
  • Fixed label display on the welcome page.
  • F3 function key was not working on the Source page of the built-in browser.
  • Improved serving of text files.
  • Fixed unicode character handling in forms.
  • Unit was not marked as saved after a new project was saved for the first time.
  • Suggestions are not invoked inside a string.
  • DataSnap proxy generator DLL is included in the installer.
  • Unopened files were not saved after ‘Make item external’.
  • Improved loading times for large and old Base64 encoded projects.
  • Fixed ‘asm’ statement detection in highlighter.
  • More than one external source file can be added in one step.
  • Fixed execution in external browser – when started twice in a row without closing Brower/Server window, source was not reloaded in the external browser.
  • Fixed occasional execution problems.
  • If an error occurs when executing program in internal browser, cursor jumps to the JavaScript source line which caused the error.

 

RTL

  • Added bunch of W3C APIs.
  • Added Tizen APIs.
  • Improved GLScene libraries.
  • Fixed problem when InitializeObject was called twice for forms in old (pre-2.1) projects.
  • CSS theme cleanup.
  • Fixed w3_getElementByName.

 

Demos

  • Added example for XMLHttpRequest.
  • Updated all contest demos [GraphicsDemo, Afternoon Walk, Real Fire, RetroBalls, Biotopia, PolyDNA]  to the new format (including minor fixes related to changes in v2.1).

 

—

Sincerely,
The Smart Mobile Studio Team

Hotfix release

Smart Mobile Studio 2.1 (beta-1)

Posted on 09.07.2014 by Smart Mobile Studio Team Posted in Announcements, Developers log, News 3 Comments

Smart Mobile Studio 2.1 (beta)Version 2.1 of Smart Mobile Studio will soon be released.

If you would like to give this a try, you can download the installer here:

  • setup_enterprise.exe
  • setup_professional.exe
  • setup_basic.exe
  • setup_educational.exe

A valid license key (trial or subscription) is required.

NOTE: Since v2.0 isn’t forward compatible, you can’t open v2.1 projects in v2.0 anymore. Make sure to always backup your projects case you want to revert to v2.0 again.

—
Sincerely,
The Smart Mobile Studio Team

Continue reading→

beta release v2.1

Smart Mobile Studio 2.0 (Hotfix 2)

Posted on 10.06.2014 by Smart Mobile Studio Team Posted in Announcements, Developers log, News

The next version of Smart Mobile Studio (v2.1) is right around the corner.

We do, however, need a bit more time than first anticipated on testing and quality assurance for this release.
Thus we decided to release another hotfix for v2.0 to support the users who needs these fixes.

You can download Smart Mobile Studio 2.0.2 from the downloads section, which includes this ‘hotfix 2’.

Changelog

Fixes

  • Fixed compiler bugs.
  • Improved command-line compiler (more independent now).
  • Source code highlighter for bg color of active line.
  • Underscores allowed in component names.
  • ShowMessage bug under Chromium.
  • Update of Top/Left properties when dragging components.
  • Update component color properly.
  • Improved CTRL+Click in source code.
  • Save “whole word” option in search dialog.

Download

You can download Smart Mobile Studio 2.0.2 from the downloads section.

—
Sincerely,
The Smart Mobile Studio Team

Hotfix release Stable release

Smart Mobile Studio 2.0 (Hotfix 1)

Posted on 18.03.2014 by Smart Mobile Studio Team Posted in Announcements, Developers log, News

While we are hard working on the next release of Smart Mobile Studio (few hints: docking, debugging, HTML projects) we also want to support existing 2.0 users. We have fixed bugs that were reported since version 2.0 and even added few improvements which didn’t make it into the original release.

You can download Smart Mobile Studio 2.0.1 from the downloads section.

Changelog

Fixes

  • Fixed compiler bugs.
  • Fixed command-line compiler.
  • Project, Show application unit could be executed when no project was open which resulted in access violation error.
  • Expand classes and Expand all actions in the Unit structure window were disabled for external forms.
  • Alignment problems of the component palette when program is not started maximized.
  • In-memory state was not refreshed after RTL reindex.
  • If the RTL database cannot be loaded during startup (even if index file exists), it is automatically reindexed.
  • Access violation in Options if no project is selected.
  • Program terminated instead of asking for license when not running maximized and valid license was not found.
  • Fixed implementation of the Focused property.
  • Fixed TPointF.Displace function. Better implementation of TPoint.AngleTo and TPointF.AngleTo.
  • Fixed project loading code. Project files referring to missing files can now be opened.
  • Fixed links on Welcome page.

Changes

  • Disabled Project.Export project, which was not implemented.
  • Disabled Build Documentation menu which was not fully implemented.
  • Exception logging is built into product.
  • Updated CSS for the grid component.
  • Class Browser is temporarily disabled (it was not working properly). We’ll fix it in the next “normal” release.

New Features

  • Added grid methods TW3Grid.AddCells, TW3Columns.Clear, TW3Columns.Delete and properties TW3Column.Alignment, TW3Column.Color.
  • Added grid demo.

Known issues

  • [CTRL] + Click on a unit might open the wrong file if Source Maps are/were used for debugging and the directory ..\www\debug is still present.

Download

You can download Smart Mobile Studio 2.0.1 from the downloads section.

—
Sincerely,
The Smart Mobile Studio Team

Hotfix release Stable release

Smart Mobile Studio v2.0 (beta)

Posted on 06.12.2013 by Smart Mobile Studio Team Posted in Developers log, News

Version 2.0 of Smart Mobile Studio will soon be ready for the release.

Over the last few days, we have distributed a private beta to some selected users, and now we would like to make this available for everyone.

We know you have been waiting for this – and so have we!

Download the installer and follow the instructions.

We hope you’ll be as excited about this release as we are 🙂

—
Sincerely,
The Smart Mobile Studio Team

beta release Smart Mobile Studio Version 2.0

Smart Mobile Studio 1.1.2 (RTM)

Posted on 17.08.2013 by Smart Mobile Studio Team Posted in Developers log

The official 1.1.2 version (build 20) is now ready.

News in 1.1.2.20

These are the changes from beta 2 (v1.1.2.14):

  • Snippets will not be removed during un-installation.
  • Division compiler bug is fixed (“Round(1 / (r / 10))”).
  • Use ‘Application’ as suffix (instead of ‘Project’) for the project name.

Download/installation

Download the installer, setup__v1_1_2_20_RTM.exe and install as normal.

It is not necessary to un-install previous versions or beta versions. However, in some situations, that has proved to be the solution. Eg. if RTL is not properly updated. Make sure you backup the files and folders you want to keep before un-installing.

During installation, a backup of existing RTL and Libraries are made. They are simply copied to a folder with date as postfix. You can just delete these folders if you haven’t made any changes these files.

Known issues

There are no known issues in this version.
If you should bump into an issue, please report that at support@smartmobilestudio.com.

—
Sincerely,
The Smart Mobile Studio Team

release rtm

Smart Mobile Studio 1.1.2 (beta-2)

Posted on 27.07.2013 by Smart Mobile Studio Team Posted in Developers log

We have received lots of useful feedback from the first beta-version of v1.1.2 (build 13).
We have fixed these issues in a new beta-version.

News in 1.1.2.14

These are the changes from beta-1 (v1.1.2.13):

  • Snippets will not be overwritten during installation.
  • Existing RTL files and Library files are backed up with a date-time stamp.
  • RTL index gets rebuild autmatically.
  • Cleanup in css-files.
  • CD out of the project folder when a project is closed.
  • ‘Rename Unit’ works again.

Download/installation

Download the installer, (link removed, since new version is available) and install as normal.

Known issues

We have one more issue we would like to fix before we release this version. That’s a compiler bug we discovered in the last minute.
If you write this Smart code:
[code]
Round(1 / (r / 10));
[/code]

It will be compiled to this JavaScript code:
[code]
Math.round(1/r$4/10);
[/code]
which is equal to “Round((1 / r) / 10);”

The workaround is to use a temp variable for “(r / 10)”.
[code]
var
tmp: Real;
begin
tmp := (r / 10);
Result := Round(1 / tmp);
end;
[/code]

—
Sincerely,
The Smart Mobile Studio Team

beta release Smart Mobile Studio

Smart Mobile Studio 1.1.2 beta

Posted on 03.07.2013 by Smart Mobile Studio Team Posted in Developers log, Documentation, News 2 Comments

Just before the first round of summer holidays we managed to put together a beta version of the next Smart Mobile Studio, version 1.1.2. Installer is available on the download page (link removed, since beta 2 is ready).

Installation

In case you are using the snippets functionality of the Smart Mobile Studio, you should first make a backup copy of the snippets file, because the installer will silently overwrite it with a fresh version. (Yes, this is a bug. Yes, we will fix it.) Navigate to Documents, Smart Mobile Projects and make a copy of the snippets.xml file (in another folder). Restore it after the installation.

Before the installation you should check that SmartMS.exe process is not present in the memory. Due to a bug in the 1.1.1 version, closing Smart Mobile Studio sometimes left SmartMS.exe process active in memory and that would prevent the new version from being installed. Just run Task Manager and kill any SmartMS.exe you can find (or reboot the computer, that would also work).

SmartMS

If you are upgrading an existing installation, please run Tools, Rebuild RTL Index the first time you start Smart Mobile Studio. This should be done automatically on the first run but we made a mistake preparing the installer and this step is skipped. It will be fixed in the real 1.1.2 release.

Changes

The focus of this release was mainly on fixing old bugs and making everying run smooth. We did, however, add some useful new features.

As you’ll probably notice looking at the changelist below, we didn’t fix most of the problems with the form designer. The reason for this is that we’re working on a completely new designer which will be included in the 1.2 release (expected to be released in autumn).

Compiler

New functionality

  • Compiler now supports the “in” operator to check if a string contains another string.
  • Added a bunch of built-in helpers/aliases for types String, Integer, Float and Boolean. (Full list can be found in the DWScript documentation.)
  • Helpers can operate directly on in-line constants. For example, now you can write “hello”.Reverse (which would return “olleh”).
  • “For in” syntax can be used on variants (for var s in someVariant do …). This allows enumerating members of a raw JavaScript objects.
  • “For in” syntax can be used on sets (for var el in someSet do …).
  • Dynamic arrays now have a “sort” method which takes a comparison function; that maps directly to JavaScript array sort method. String, Integer and Float arrays also implement a “sort” method without a parameter which sorts the array in the natural order.
  • Dynamic arrays now have a “map” method which maps directly to the JavaScript map method.
  • Conditional compilation symbol DWSCRIPT is always defined.
  • Added CompilerVersion constant. It holds a floating point value that holds the compiler version in language terms under the form YYYYMMDD.XX, with XX the minor version. This will be updated each time the language changes.
  • Added ability to mark all named types as deprecated (just postfix with deprecated “optional message”), this means among other things that (unlike in Delphi) classes and records can be marked as deprecated.
  • Added limited support for sets.
    • Only sets of enumerations are supported.
    • Only in operator is supported.
    • Compiler supports Include and Exclude methods, which can be used in two ways, either as “Include(mySet, value)” or as “mySet.Include(value)”.

Improved functionality

  • Better code completion hints on array elements.
  • Functions and methods can be marked inline. This is implemented only for Delphi compatibility; inline is ignored in the compiler.
  • “For x in string” loops now accept “break” and “continue” statements.

RTL

New functionality

  • Unhandled exceptions in console applications are caught and logged to the console window.
  • Added w3_prompt function which maps to the JavaScript prompt command.

Improved functionality

  • W3Effects unit supports FireFox.

Bugs fixed

  • A toolbar button glyph is displayed even if the button caption is empty.
  • TW3CustomStorage.getKeyInt tries to convert string data back to the integer form; only if that fails it returns the default value.
  • TW3Label appearance changes when it is disabled.
  • TW3CheckBox is fully disabled when the Enabled property is set to False.

IDE

New functionality

  • Forms and units can be stored in external files by default (Preferences, Store new forms and units in external files).
  • Position and size of the Smart Mobile Studio is remembered between sessions.
  • Open tabs, editor bookmarks and active tab are stored in the project (.opp) file and are restored when the project is open.
  • Project file (.opp) uses CDATA for form/unit storage to be more version control-friendly.
  • When a file is modified outside the Smart Mobile Studio environment, a prompt will ask the user to reload the file. A built-in “difference” engine can be used to show changes between the editor and disk file. External program (such as WinMerge or Beyond Compare) can be configured and used instead of the internal one.

Improved functionality

  • When a built-in server is used to serve the application files, address in the Serving link can be changed to any of computer’s internal addresses.
  • Name of the open project is shown in the window title.
  • Screen resolution list in Preferences, Layout can be sorted manually.
  • Units and forms can be deleted from the project by pressing the Del key when a unit/form node is selected in the Project Browser.
  • Ctrl+Click on an identifier jumps to the beginning of the row.
  • Ctrl+Click on an identifier scrolls the target to the middle of the screen.
  • Better performance when many JavaScript messages are logged to the console log window in the integrated browser.
  • Add Form/Add Unit commands prompt for the new form/unit name.
  • Search centers the result in the text editor.
  • Ctrl+/ removes comment markers that are preceeded by whitespace.
  • Scroll past EOF setting is enabled on a new install.
  • Improved highlighter configuration. All elements (strings, numbers, reserved words …) can now be configured separately for different file types (pascal, javascript …). Highlighter settings can be stored in a file.
  • New examples.

Bugs fixed

  • Edited data is not lost anymore if you click on the form designer while editing data in the property inspector.
  • A text containing single quotes can be now entered into the Caption and Text properties in the property inspector.
  • Right-clicking in the project browser works as expected.
  • Shortcuts (Ctrl+C, Ctrl+X, Ctrl+V, Del) on the Design tab are now working correctly.
  • Form and unit renaming corrected.
  • Del key works in the Search & Replace dialog.
  • Search & Replace works correctly when Case-sensitive checkbox is not checked and the found text doesn’t match case-sensitively.

—
Sincerely,
Primož Gabrijelčič, product manager

beta release Smart Mobile Studio

Smart Mobile Studio 1.1.1

Posted on 14.05.2013 by Smart Mobile Studio Team Posted in Developers log, News

We have fixed a few issues in the v1.1 release and wrapped up a new release with these hotfixes included.
Just download the latest installer directly from the download page.

Changes

  • Fixed bug in W3Animation unit
  • Fixed compiler bug for div by negative numbers
  • Added missing TW3ListBox.Clear method
  • Fixed wrong modal dialog position
  • Fixed “Unit form1=impl could not be located” error message
  • Improved background compiler
  • Fixed requestAnimationFrame problem in Opera, Android browsers and Safari on iOS < 6.0

—
Sincerely,
The Smart Mobile Studio Team

release

Smart Mobile Studio 1.1 RC (build 1.1.0.400)

Posted on 15.02.2013 by Smart Mobile Studio Team Posted in News

We are very proud to present the release candidate for Smart Mobile Studio version 1.1  (build number v1.1.0.400). If you would like to give this groundbreaking product a test drive before we officially release it, then you can download the installer directly from SmartMobileStudio.com/download/setup_v1_1_0_400_rc.exe


(The context menu is replaced with Ctrl+Shift+R (start/stop recording) and Ctrl+Shift+P (replay the recorded macro).

We have done a lot of improvements in the IDE, the editor, the RTL and the Smart Pascal language. Below is a list of some of the improvements that have been done since version 1.0 (see full manifest of changes for beta 1 here).

IDE changes

  • Added: Support for external form files
  • Added: Navigate to ancestor from class-browser
  • Added: Components are now organized in more tabs
  • Added: RTL source proxy, speeds up compilation and dependency chain
  • Added: Syntax hints and improved code insight
  • Added: The IDE now uses threading to handle background compilation
  • Added: Dependencies for controls are automatically added to the uses clause
  • Fixed: Resizer bugs for nested controls
  • Fixed: Scrolling issue fixed ([CTRL] + [Up]/[Down])
  • Fixed: Disabled unit structure flickering
  • Fixed: LineCount issue
  • Fixed: Case fix for strict hints
  • Fixed: A label “mistake” in the baseframe (it was renamed further up the chain).
  • Fixed: modified [CTRL]+/ to work the same as in Delphi:
    • if a single line is changed, caret is moved to the next line (current column is preserved)
    • if multiple lines are selected, comment is toggled for the whole block and caret is move to the line following the block (current column is set to 1)
    • modification is placed into the undo buffer so that it can be undone
  • Altered: [CTRL]+[/] is replaced by [CTRL]+[#] for systems where [/] is only accessible via [SHIFT]
  • Altered: Minor changes on compiler output (bulk output of errors, warnings and hints).
  • Altered: Search and replace dialog remembers the last states
  • Altered: improved code proposal (insert item highlight)
  • Altered: dialogs are centered
  • Altered: Recent file on welcome tab now supports to show unlimited entries if desired (by default limited to 10 items)
  • Added: Pascal “Gabelou” StyleCop (see prefrences->misc. to enable it).
  • Added: Rename refactoring (including closed files)
  • Added ‘Format Keywords’ action (see popup menu), which translates all keywords to lowercase.
  • Added: Simplified BrowserAPI
  • Added: possibility to filter log messages from the console output (filtered ‘event.layerX and event.layerY are broken and deprecated …’ by default). Select a certain text to filter and right click -> Ignore Message to filter out all messages containing this particular string. The filter will be resetted on restart.

RTL

  • Updated: Remobjects headers
  • Updated: WebGL headers
  • Updated: Sprite3d
  • Added: DrawTo, DrawPart and misc CODEF functions added to TW3Canvas
  • Added: TW3Progressbar control
  • Added: TW3ListBox control
  • Added: Unit for complex numbers (w3complex.pas)
  • Minor formating and added overload function for CreateImageData
  • Added fast sequential read text file loaders
  • Applied the new ‘Format Keywords’ to the remaining RTL files
  • Removed duplicate & tweaked hash function
  • Improved hashing function
  • dialogs need custom initialization
    • modal dialog support integrated into TW3CustomApplication (ShowModal, HideModal)
    • modal dialog is re-centered if application is resized (for example when orientation of a mobile device changes)
    • added  TW3CustomApplication.CreateOpaqueMask
    • TW3CustomControl.getMaxZIndex is now public
    • modal dialogs triggered from modal dialogs are now supported
  • Fixed: zIndex issues with modal dialogs
  • Fixed: opaque layer has high z-index to cover all controls on the form
  • Fixed: SendToBack
  • Altered: dialogs are centered on the form
  • Altered: event handlers are only called when assigned
  • Altered: W3ModalDialog made external for easier reuse
  • Altered: updated Remobjects interface
  • Altered: Changed default Mouse event X,Y coordinates
  • Added: W3ModalDialog uses opaque div to block owner form (tnx to Eric)
  • Added: PixelRatio info
  • Added TVariant.Properties + OwnProperties
  • Added HorzLine/VertLine
  • Added: New FillRectF/StrokeRectF overloads
  • Added: TW3CustomApplication.FormByName, TW3Component.ChildByName, TW3Component.EnumChildrenAltered: SetSize now virtual
  • Added: PhoneGapAPI is now complete

COMPILER

  • Added: Support for RTTI (!)
  • Added: Support for property expressions
  • Added: Support for interface expressions
  • Fixed: Case fixes for strict mode
  • Fixed: an issue where compiler would accept method implementations in a different unit the class was declared
  • Fixed: Lambdas don’t have a “var”/”const”/etc. section
  • Fixed: issue with invalid symbol table in suggestions in case of fatal error in a lambda
  • Fixed: SymbolDictionary bug for forwarded overloaded methods
  • Fixed: calling overloaded inherited constructors
  • Fixed: codegen for assignments of a function’s result to a var param
  • Fixed: timestamp is now up to date
  • Updated: now uses latest compiler core
  • Updated: tokenizer updated to latest revision
  • Altered: Compile speed optimizations
  • Added: Missing semi-colon no longer a stopping error
  • Added: JSON to reserved names
  • Added: JSON static class
  • Added: Preparation for source maps

DEMOS

  • Fixed: style bug in smartflow
  • Fixed: bug in spartacus
  • Fixed: bug in box2d wrapper
  • Altered: Tested all demos (with exception of gyro). All demos now compile.
  • Altered: formatting of Archimedes Spiral
  • Added: frames demo
  • Added: modal dialog example

Sincerely,
Jon Lennart Aasenden
—
The Smart Mobile Studio Team

Android announcement Apple candidate compiler CSS HTML5 javascript Object Pascal OP4JS Pascal release Smart Mobile Studio w3C webkit

Smart Mobile Studio v1.1 (beta-2)

Posted on 21.01.2013 by Smart Mobile Studio Team Posted in Developers log, News

We are very proud to present an updated beta-version of our 1.1 release (build number v1.1.0.372) of Smart Mobile Studio. If you would like to give this update a test run before we officially release it, then you can download the installer directly from SmartMobileStudio.com/download/setup_v1_1_0_372_beta.exe


(The context menu is replaced with Ctrl+Shift+R (start/stop recording) and Ctrl+Shift+P (replay the recorded macro).

We have done a lot of improvements in the IDE, the editor, the RTL and the Smart Pascal language. Below is a list of the improvements that have been done since the previous beta (see full manifest of changes for beta 1 here).

IDE changes

  • Fixed: Resizer bugs for nested controls
  • Fixed: Scrolling issue fixed ([CTRL] + [Up]/[Down])
  • Fixed: Disabled unit structure flickering
  • Fixed: LineCount issue
  • Fixed: Case fix for strict hints
  • Fixed: A label “mistake” in the baseframe (it was renamed further up the chain).
  • Fixed: modified [CTRL]+/ to work the same as in Delphi:
    • if a single line is changed, caret is moved to the next line (current column is preserved)
    • if multiple lines are selected, comment is toggled for the whole block and caret is move to the line following the block (current column is set to 1)
    • modification is placed into the undo buffer so that it can be undone
  • Altered: [CTRL]+[/] is replaced by [CTRL]+[#] for systems where [/] is only accessible via [SHIFT]
  • Altered: Minor changes on compiler output (bulk output of errors, warnings and hints).
  • Altered: Search and replace dialog remembers the last states
  • Altered: improved code proposal (insert item highlight)
  • Altered: dialogs are centered
  • Altered: Recent file on welcome tab now supports to show unlimited entries if desired (by default limited to 10 items)
  • Added: Pascal “Gabelou” StyleCop (see prefrences->misc. to enable it).
  • Added: Rename refactoring (including closed files)
  • Added ‘Format Keywords’ action (see popup menu), which translates all keywords to lowercase.
  • Added: Simplified BrowserAPI
  • Added: possibility to filter log messages from the console output (filtered ‘event.layerX and event.layerY are broken and deprecated …’ by default). Select a certain text to filter and right click -> Ignore Message to filter out all messages containing this particular string. The filter will be resetted on restart.

RTL

  • Minor formating and added overload function for CreateImageData
  • Added fast sequential read text file loaders
  • Applied the new ‘Format Keywords’ to the remaining RTL files
  • Removed duplicate & tweaked hash function
  • Improved hashing function
  • dialogs need custom initialization
    • modal dialog support integrated into TW3CustomApplication (ShowModal, HideModal)
    • modal dialog is re-centered if application is resized (for example when orientation of a mobile device changes)
    • added  TW3CustomApplication.CreateOpaqueMask
    • TW3CustomControl.getMaxZIndex is now public
    • modal dialogs triggered from modal dialogs are now supported
  • Fixed: zIndex issues with modal dialogs
  • Fixed: opaque layer has high z-index to cover all controls on the form
  • Fixed: SendToBack
  • Altered: dialogs are centered on the form
  • Altered: event handlers are only called when assigned
  • Altered: W3ModalDialog made external for easier reuse
  • Altered: updated Remobjects interface
  • Altered: Changed default Mouse event X,Y coordinates
  • Added: W3ModalDialog uses opaque div to block owner form (tnx to Eric)
  • Added: PixelRatio info
  • Added TVariant.Properties + OwnProperties
  • Added HorzLine/VertLine
  • Added: New FillRectF/StrokeRectF overloads
  • Added: TW3CustomApplication.FormByName, TW3Component.ChildByName, TW3Component.EnumChildrenAltered: SetSize now virtual
  • Added: PhoneGapAPI is now complete

COMPILER

  • Fixed: Case fixes for strict mode
  • Fixed: an issue where compiler would accept method implementations in a different unit the class was declared
  • Fixed: Lambdas don’t have a “var”/”const”/etc. section
  • Fixed: issue with invalid symbol table in suggestions in case of fatal error in a lambda
  • Fixed: SymbolDictionary bug for forwarded overloaded methods
  • Fixed: calling overloaded inherited constructors
  • Fixed: codegen for assignments of a function’s result to a var param
  • Fixed: timestamp is now up to date
  • Updated: now uses latest compiler core
  • Updated: tokenizer updated to latest revision
  • Altered: Compile speed optimizations
  • Added: Missing semi-colon no longer a stopping error
  • Added: JSON to reserved names
  • Added: JSON static class
  • Added: Preparation for source maps

DEMOS

  • Fixed: style bug in smartflow
  • Fixed: bug in spartacus
  • Fixed: bug in box2d wrapper
  • Altered: Tested all demos (with exception of gyro). All demos now compile.
  • Altered: formating of Archimedes Spiral
  • Added: frames demo
  • Added: modal dialog example

Sincerely,
Jon Lennart Aasenden
—
The Smart Mobile Studio Team

beta release

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)
  • 1
  • 2
  • Next
© Optimale Systemer AS