|
@@ -2024,6 +2024,7 @@ BEGIN
|
|
|
{$ifdef FV_UNICODE}
|
|
|
Else Case Event.UnicodeChar Of
|
|
|
' '..#$FFFF: { Character key }
|
|
|
+ if (NOT (GetShiftState AND $04 <> 0)) then { Only insert if Ctrl is not pressed }
|
|
|
Begin
|
|
|
If (State AND sfCursorIns <> 0) Then
|
|
|
Delete(Data Sw_PString_DeRef, CurPos + 1, 1) Else { Overwrite character }
|
|
@@ -2048,22 +2049,26 @@ BEGIN
|
|
|
End
|
|
|
{$else FV_UNICODE}
|
|
|
Else Case Event.CharCode Of
|
|
|
- ' '..#255: If Data <> Sw_PString_Empty Then Begin { Character key }
|
|
|
- If (State AND sfCursorIns <> 0) Then
|
|
|
- Delete(Data Sw_PString_DeRef, CurPos + 1, 1) Else { Overwrite character }
|
|
|
- DeleteSelect; { Deselect selected }
|
|
|
- If CheckValid(True) Then Begin { Check data valid }
|
|
|
- If (Length(Data Sw_PString_DeRef) < MaxLen) Then { Must not exceed maxlen }
|
|
|
- Begin
|
|
|
- If (FirstPos > CurPos) Then
|
|
|
- FirstPos := CurPos; { Advance first position }
|
|
|
- Inc(CurPos); { Increment cursor }
|
|
|
- Insert(Event.CharCode, Data Sw_PString_DeRef,
|
|
|
- CurPos); { Insert the character }
|
|
|
+ ' '..#255:
|
|
|
+ If (NOT (GetShiftState AND $04 <> 0)) Then { Only insert if Ctrl is not pressed }
|
|
|
+ Begin
|
|
|
+ If Data <> Sw_PString_Empty Then Begin { Character key }
|
|
|
+ If (State AND sfCursorIns <> 0) Then
|
|
|
+ Delete(Data Sw_PString_DeRef, CurPos + 1, 1) Else { Overwrite character }
|
|
|
+ DeleteSelect; { Deselect selected }
|
|
|
+ If CheckValid(True) Then Begin { Check data valid }
|
|
|
+ If (Length(Data Sw_PString_DeRef) < MaxLen) Then { Must not exceed maxlen }
|
|
|
+ Begin
|
|
|
+ If (FirstPos > CurPos) Then
|
|
|
+ FirstPos := CurPos; { Advance first position }
|
|
|
+ Inc(CurPos); { Increment cursor }
|
|
|
+ Insert(Event.CharCode, Data Sw_PString_DeRef,
|
|
|
+ CurPos); { Insert the character }
|
|
|
+ End;
|
|
|
+ CheckValid(False); { Check data valid }
|
|
|
+ End;
|
|
|
End;
|
|
|
- CheckValid(False); { Check data valid }
|
|
|
End;
|
|
|
- End;
|
|
|
^Y: If Data <> Sw_PString_Empty Then Begin { Clear all data }
|
|
|
Data Sw_PString_DeRef := ''; { Set empty string }
|
|
|
CurPos := 0; { Cursor to start }
|