Refresh() bTextBox::Refresh() this.Value = InchToString( evaluate( (this.mcControlSource) ) ) <b>Valid()</b> local lnInches, lnFrac, lcInches, lcFrac, i this.Value = alltrim( this.Value ) i = at( ' ', this.Value ) if ( i > 0 ) lcInches = left( this.Value, i - 1 ) lnInches = val( lcInches ) lcFrac = chrtran( substr( this.Value, i ), " ", "" ) lnFrac = evaluate( lcFrac ) else lnInches = val( this.Value ) lnFrac = 0 endif replace (this.mcControlSource) with lnInches + lnFrac <b>Init()</b> bTextBox::Init() * we have to unbind this this.mcControlSource = this.ControlSource this.ControlSource = "" this.Refresh() <b>Keypress()</b> LPARAMETERS nKeyCode, nShiftAltCtrl do case case ( ( nKeyCode > 57 ) and ( nKeyCode < 127 ) ) nodefault otherwise bTextBox::KeyPress( nKeyCode, nShiftAltCtrl ) endcase>This is the easy part . My real big problem is when I create the screens . The field somehow need to show like two fields . On where the dozens part will show and one where the pairs part will be with a little label in the middle for the dot. I suppose too that I will need two variable ( properties) to hold this data. I that write ?