Ken: Thanks for your impressive program which is not as simple as I had hoped. What is preventing me from typing into this non-static edit field? Cheers, Mike (aka Jan M. Hollis) No man knows how bad he is until he has tried very hard to be good. -- C.S. Lewis in Mere Christianity -- On 05/07/12, Ken Shmidheiser wrote: Jan asked: > Also, on a non-static edit field, is there any simple way to color it while active? My non-static > fields resist all attempts to change it from white to any color Jan, Try this to change change the edit field color. Ken begin enum _mainWindow _rgbColorField end enum local fn DoColorFromString( colorStr as Str255 ) '~'1 dim as ControlFontStyleRec tfs dim as RGBColor backRGB, foreRGB dim as long r, g, b dim as Boolean @ bool : bool = _true r = 0 : g = 0 : b = 0 // Create individual color table components select ( colorStr ) case "Black" : r = 0 : g = 0 : b = 0 case "Brown" : r = 60000 : g = 40000 : b = 20000 case "Red" : r = 65535 : g = 0 : b = 0 case "Orange" : r = 65535 : g = 30000 : b = 0 case "Yellow" : r = 65535 : g = 65535 : b = 0 case "Green" : r = 0 : g = 65535 : b = 0 case "Blue" : r = 0 : g = 0 : b = 65535 case "Violet" : r = 65535 : g = 0 : b = 65535 case "Gray" : r = 50000 : g = 50000 : b = 50000 case "White" : r = 65535 : g = 65535 : b = 65535 end select backRGB.red = r : backRGB.green = g : backRGB.blue = b tfs.flags = _kControlUseBackColorMask + _kControlUseForeColorMask + _kControlUseSizeMask if ( colorStr = "White" ) or ( colorStr = "Yellow" ) or ( colorStr = "Green" ) foreRGB.red = 0 : foreRGB.green = 0 : foreRGB.blue = 0 else foreRGB.red = 65535 : foreRGB.green = 65535 : foreRGB.blue = 65535 end if tfs.backColor = backRGB : tfs.foreColor = foreRGB : tfs.size = 16 fn SetButtonFontStyle( _rgbColorField, tfs ) fn SetButtonData( _rgbColorField, _kControlEditTextPart, _kControlEditTextLockedTag, sizeof( Boolean ), @bool ) fn SetButtonTextString( _rgbColorField, "Click me to Test" ) end fn local fn BuildWindow '~'1 dim as ControlFontStyleRec tfs dim as RGBColor backRGB, foreRGB dim as WindowAttributes wa dim as Rect r dim as Boolean @ bool : bool = _true wa = _kWindowCloseBoxAttribute + _kWindowCollapseBoxAttribute SetRect( @r, 0, 0, 300, 150 ) appearance window 1, "Color Edit Field", @r,_kDocumentWindowClass, wa SetRect( @r, 20, 20, 280, 130 ) edit field _rgbColorField,,@r,,_noFramedNoCR // Set flags to use tfs.flags = _kControlUseBackColorMask + _kControlUseForeColorMask + _kControlUseSizeMask + _kControlUseJustMask // Set background color to black backRGB.red = 0 : backRGB.green = 0 : backRGB.blue = 0 // Set foreground color to white foreRGB.red = 65535 : foreRGB.green = 65535 : foreRGB.blue = 65535 // Apply color flags; set font size to 14 point; apply center justification tfs.backColor = backRGB : tfs.foreColor = foreRGB : tfs.size = 16 : tfs.just = _teJustCenter fn SetButtonFontStyle( _rgbColorField, tfs ) fn SetButtonData( _rgbColorField, _kControlEditTextPart, _kControlEditTextLockedTag, sizeof( Boolean ), @bool ) fn SetButtonTextString( _rgbColorField, "Click me to Test" ) fn SetButtonData( _rgbColorField, _kControlButtonPart, _kControlEditTextLockedTag, sizeof( Boolean ), @bool ) end fn local fn DoDialog '~'1 dim as short ev, id dim as Str15 randomColor(10) ev = dialog (0) id = dialog (ev) select case ( ev ) case _wndClick : window id case _wndClose : end case _btnClick select ( id ) case _rgbColorField randomColor(1) = "Black" randomColor(2) = "Brown" randomColor(3) = "Red" randomColor(4) = "Orange" randomColor(5) = "Yellow" randomColor(6) = "Green" randomColor(7) = "Blue" randomColor(8) = "Violet" randomColor(9) = "Gray" randomColor(10) = "White" fn DoColorFromString( randomColor( rnd(10) ) ) end select end select end fn on dialog fn DoDialog randomize fn BuildWindow do HandleEvents until gFBQuit -- To unsubscribe, send ANY message to: futurebasic-unsubscribe@... To access the list archives, go to: http://freegroups.net/groups/futurebasic/