Vertically aligning text in a field
Terence Heaford
t.heaford at btinternet.com
Sat Dec 20 14:06:22 EST 2014
Hi Geoff,
When I plug this into my tester the text ends up at the top of the field.
iMac, Yosemite, LC6.7.1
on centreTextVertically tID
--THIS WORKS
-- put the effective textSize of fld id tID into tTextSize
-- put round (((tTextSize - 24) * 1/3)) into tOffset
-- put the formattedheight of char 1 to - 1 of fld id tID into tFormattedHeight
-- put round((the height of fld id tID - tFormattedHeight) / 2) into tVerticalMargins
-- put tVerticalMargins - tOffset into tTopMargin
-- put tVerticalMargins + tOffset into tBottomMargin
-- set the margins of fld id tID to 8,tTopMargin,8,tBottomMargin
--THIS WORKS
-- put the effective textHeight of fld id tID into tTextHeight
-- put item 2 of the loc of fld id tID into tfieldY
-- put the formattedRect of line 1 to - 1 of fld id tID into tFormatRect
-- put item 2 of tFormatRect into tCurrFormatTop
-- put tfieldY - tCurrFormatTop into tCenterField_To_TopTextDiff
-- put the number of lines of the formattedtext of fld id tID into tNoOfLines
-- put (((tNoOfLInes div 2)) * tTextHeight) + (tNoOfLInes mod 2) * (tTextHeight div 2) into tOffset
-- set the topMargin of fld id tID to the topMargin of fld id tID + tCenterField_To_TopTextDiff - tOffset
--THIS WORKS
-- put the effective textHeight of fld id tID into tTextHeight
-- put item 2 of the loc of fld id tID into tfieldY
-- put the formattedRect of line 1 to - 1 of fld id tID into tFormatRect
-- put item 4 of tFormatRect - item 2 of tFormatRect into tFormatHeight
-- put tFormatHeight div 2 into tFormatHalfHeight
-- put item 2 of tFormatRect into tCurrFormatTop
-- put tfieldY - tCurrFormatTop into tCenterField_To_TopTextDiff
-- set the topMargin of fld id tID to the topMargin of fld id tID + tCenterField_To_TopTextDiff - tFormatHalfHeight
--WITH THIS THE TEXT ENDS UP AT THE TOP OF THE FIELD
put the formattedrect of line 1 to -1 of fld id tID into tFormattedRect
set the topmargin of fld id tID to (the height of fld id tID - item 4 of tFormattedRect + item 2 of tFormattedRect) div 2
end centreTextVertically
Don’t know why.
All the best
Terry
> On 20 Dec 2014, at 18:41, Geoff Canyon <gcanyon at gmail.com> wrote:
>
> I'm not seeing a
> way to break my two-line solution? What is the need for a more complex
> solution?
More information about the use-livecode
mailing list