Not hard to implement... but (IMO) not worth the hassle due to the coding involved.
Create a container class. Add a textbox with no borders, change special effects to plain set the back style to 1-Opaque, put a shape over it. Set the border style of the shape to 6 - inside solid, Curvature to 25, Back style to Opaque. Both should have the same color.
You will have to change the color of the shape, when the Text Box or Edit Box is diabled, to match, Resize them together etc in code. If there is no resize involved you may not even have to create a class (but it is double work)
Bindevent() is a great candidate for this.
Well what do you know, I just tried it (no class) and it looks neat. When the Textbox is disabled (Grey) it does not look bad at all. (May not be a hassle after all)
Public oform1
oform1=Newobject("form1")
oform1.Show
Return
Define Class form1 As Form
Top = 10
Left = 45
DoCreate = .T.
Caption = "Form1"
Name = "Form1"
Add Object shape1 As Shape With ;
Top = 25, ;
Left = 45, ;
Height = 27, ;
Width = 106, ;
BackStyle = 1, ;
BorderStyle = 6, ;
Curvature = 25, ;
BackColor = Rgb(255,255,255), ;
Name = "Shape1"
Add Object text1 As TextBox With ;
BackStyle = 1, ;
BorderStyle = 0, ;
Enabled = .F., ;
Height = 21, ;
Left = 52, ;
SpecialEffect = 1, ;
Top = 28, ;
Width = 91, ;
Themes = .F., ;
Name = "Text1"
Enddefine