July 05, 2012

Smart Controls

A Smart Book has a new chapter – Smart Controls.

On 54 pages, it covers all built-in controls, from TW3Panel to TW3Header. Additional sections include tips on writing custom controls and description of the TW3ScrollControl control.

Sample book was also extended. In addition to Smart Pascal and Regular Expressions chapters it now contains selected parts from the Smart Controls chapter, including full text on TW3EditBox and TW3Toolbar.

Click this link for more information about the book …


  1. I am trying to figure out what you are trying to convey on Page 72 with your ControlsPanel sample application.

    You state "If you click the leftmost button, you’ll see that leftmost and rightmost button will stay enabled. Setting W3Panel3.Enabled to False does not disable child controls in the panel."

    Your button's onlick event sets the 3rd panel to disabled: W3Panel3.Enabled := false;

    Were you wanting to set the 3rd button instead?W3Button3.Enabled := false;

    If so, then your statement "Setting W3Panel3.Enabled to False does not disable child controls in the panel" is def true, but if it were to be changed to:

    "Setting W3Button3.disabled to False does not disable child controls in the panel", it would be false. Clicking the button will set the W3Button3.enabled property to false and the button is no longer clickable


    1. W3Panel3 is parent of W3Button[1,2,3]. W3Button2 is disabled from the start, other two are not. The question here is whether disabling the parent (W3Panel3) also disables its children (W3Button1,3) as it would in Delphi and the answer is: "No."

  2. ePub version of book have error in new chapter (as reported by iBooks on iPad): attribute XMLlang redefined

    1. I will report this to the relevant authorities. Thanks for the warning!

    2. No problem! Excellent and useful book!)) keep working ;-)

    3. Fixed, new version will be published in few minutes. Thanks for the warning!