+ Add two protected methods. FirstEditable() and LastEditable().
Several change for use this methods.
! Fix in ParsePict method
* @D function, overwrite the mask for SET DATE FORMAT
* @S without lenght parameter or @S0, they don't have effect.
! Fix in Untransform method
* if ::lEdit is false, return ::VarGet() without evaluate
the buffer contained.
* Better detection of a negative, minimizing false detections.
* Improvement in the handling of mask.
* More compliant in @D, @E, @X, @C, @(, @) functions.
* In compliant with Clipper, the lenght of number (internal lenght)
corresponds to the applied picture.
! Bug in conversion with date types and with @E function.
! Fix in Overstrike and Insert method
* First it is evaluated if the input character is valid, before
cleaning the var.
! Fix in Input method
* The minus sign can be writed in any place.
* Now work with '$' and '*' templates in numeric gets.
! Fix in PutMask method
* More compliant in the handling of some get functions.
* When edit a get with @B, the number is editing right-justified.
! Fix in Backspace method
* Permit delete a '(' symbol in a non-editable position, when
this symbol represent a negative number.
! Fix in Delete method
! When delete a negative symbol '(' or '-', turn the ::minus tu false
! Fix in IsBadDate function
! Evaluate crrectly a date with @E function.
* modification to be more Clip*r compliant and behaviour.
* changes in the logic of the function.
before, the function only erased the character under the cursor.
now it drags the other characters.
dragging is limited by the non editable characters.
* METHOD Insert()
* modification to be more Clip*r compliant and behaviour.
* changes in the logic of the function.
now insert a character and displaces to the right the rest of
the characters until the first non editable character.
METHOD ::ParsePict() - The change is because if ::Original it is not
numeric, it would generate an error.
METHOD ::Undo() - Delete assignment to ::buffer because
::VarPut( ::Original, .t. ) makes this assignment.
METHOD ::VarPut() - Delete ::nDispLen := NIL line, because
::Picture() makes this assignment.
- Revert changes of Ignacio Ortiz because the
problem was with ::nDispLen and not with empty cPicture.
METHOD ::Block() - Delete ::nDispLen := NIL line, because
::Picture() makes this assignment.
METHOD ::Picture() - Add ::nDispLen := NIL line, reset the variable.
Only ::ParsePict() can load a value that can differ of
nMaxLen.
METHOD ::KillFocus() - Change position of lines, hasfocus should be
before the call to Putmask.
This makes that in numeric fields, points or comas are not
shown before the numbers.