Skip to content

ReDim 1.0.3

Choose a tag to compare

@WilliamSmithEdward WilliamSmithEdward released this 26 Sep 20:05
· 89 commits to main since this release

Controls that follow their state, text that fits in any font, and a tour of what is new.

WritesTo goes both ways: a control writes its key and follows it, so SetState moves every control bound to the key, and a first render seeds each key from its control. Tag and ReDimUI.Sender.TagValue let one handler serve many controls, ops, and jobs, and an op's done handler reads its result through ReDimUI.Sender.Task. SelectedText, SelectedValue, and ItemPosition read and find picks, and OnStateChanged takes an array of keys. Themes gain WithSurface, WithMuted, WithStatus, WithBorder, WithCanvas, and WithPointerTint. Selects and menus can be Filterable, long radio groups and check lists scroll, Required checks picks, steppers and sliders take typed digits, and the focus ring on controls that are not text fields is opt-in with FocusRings.

Text is measured in the theme's font wherever it has to fit. A focused field uses its whole width, tabs, table cells, badges, and list rows fit what they hold, open drop lists widen to their longest item, and multi-line and AutoGrow fields draw their last line. Themes in Meiryo, Yu Gothic, Microsoft YaHei, or Malgun Gothic keep every line. Many fixes besides; the changelog lists them.

The new ReDim_Whats_New.xlsm tours all of this, a tab each for two-way state, lists, forms, the look, and async work and errors, beside a log of what each action did.

Both ReDimUI.cls and ReDimHost.bas changed since 1.0.2. Requires ROneCOne 1.9.1 or later, tested against 1.10.1. The attached ROneCOne.cls is that 1.10.1 file, identical to the copy on ROneCOne's own release. Demo workbooks attached, macros enabled. To add ReDim to a workbook of your own, import the attached ROneCOne.cls, ReDimUI.cls, and ReDimHost.bas; a workbook that already has ROneCOne 1.9.1 or later can keep its copy. All three carry Windows line endings, so File > Import makes each .cls a class. Full detail in CHANGELOG.md.