Bernd, I ran this at least 50 times and in the vast majority of cases the baselines align. In a few cases, as Bob noted, it was off by 1 pixel. But that will be OK for my use. I let users pick any font but sizes are limited from 8 to 20.
Thanks you guys. A very resourceful group, as usual! Marty > On Jun 21, 2018, at 11:00 AM, Niggemann, Bernd via use-livecode > <[email protected]> wrote: > > Hi Marty, > > depending how liberal you are in letting users choose fonts and sizes you > might get "unexpected" results by aligning to field 1 > > > try this stress test > > > --------------------------------- > on mouseUp > lock screen > set the textfont of field 1 to any line of the fontNames > set the textfont of field 2 to any line of the fontNames > set the textSize of field 1 to random(20) + 10 > set the textSize of field 2 to random(20) + 10 > -- put the textFont of field 1 into field "Font1" > -- put the textFont of field 2 into field "Font2" > unlock screen > end mouseUp > --------------------------------- > > then align via your script > Your layout can start "moving" > > Additionally not all fonts report proper ascents and descents > > > > Kind regards > Bernd > >> Marty wrote: >> This works for me, assuming you want to leave field 1 where it is and align >> field 2: >> >> on alignFieldBaselines pField1, pField2 >> local tDescent1, tDescent2, tBot1, tBot2, tDiff1, tDiff2, tRef >> local fFormattedBottom1, fFormattedBottom2 >> >> put item 4 of the formattedRect of line 1 of fld pField1 into >> fFormattedBottom1 >> put item 4 of the formattedRect of line 1 of fld pField2 into >> fFormattedBottom2 >> >> put item 4 of measureText(line 1 of fld pField1, fld pField1 ,"bounds") into >> tDescent1 >> put item 4 measureText(line 1 of fld pField2, fld pField2 ,"bounds") into >> tDescent2 >> >> put the bottom of fld pField1 into tBot1 >> put the bottom of fld pField2 into tBot2 >> >> put tBot1 - fFormattedBottom1 + tDescent1 into tDiff1 >> put tBot2 - fFormattedBottom2 + tDescent2 into tDiff2 >> >> put the bottom of fld pField1 -(tDiff1 - tDiff2) into tRef >> >> set the bottom of fld pField2 to tRef >> end alignFieldBaselines > > _______________________________________________ > use-livecode mailing list > [email protected] > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list [email protected] Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
