+ more unicode fixes in the dialogs unit

git-svn-id: branches/unicodekvm@48620 -
This commit is contained in:
nickysn 2021-02-10 17:11:02 +00:00
parent f64bd5c079
commit d41d6de6ec
2 changed files with 11 additions and 9 deletions

View File

@ -1449,7 +1449,7 @@ BEGIN
Else Else
Color := GetColor(2); { Focused colour } Color := GetColor(2); { Focused colour }
MoveChar(B, ' ', Color, Size.X); MoveChar(B, ' ', Color, Size.X);
MoveStr(B[1], Copy(Data^, FirstPos + 1, Size.X - 2), Color); MoveStr(B[1], Copy(Data Sw_PString_DeRef, FirstPos + 1, Size.X - 2), Color);
if CanScroll(1) then if CanScroll(1) then
MoveChar(B[Size.X - 1], RightArr, GetColor(4), 1); MoveChar(B[Size.X - 1], RightArr, GetColor(4), 1);
if (State and sfFocused <> 0) and if (State and sfFocused <> 0) and
@ -1493,8 +1493,8 @@ BEGIN
CurPos := 0; { Cursor to start } CurPos := 0; { Cursor to start }
FirstPos := 0; { First pos to start } FirstPos := 0; { First pos to start }
SelStart := 0; { Selected at start } SelStart := 0; { Selected at start }
If Enable AND (Data <> Nil) Then If Enable AND (Data <> Sw_PString_Empty) Then
SelEnd := Length(Data^) Else SelEnd := 0; { Selected which end } SelEnd := Length(Data Sw_PString_DeRef) Else SelEnd := 0; { Selected which end }
DrawView; { Now redraw the view } DrawView; { Now redraw the view }
END; END;
@ -1524,11 +1524,11 @@ END;
{---------------------------------------------------------------------------} {---------------------------------------------------------------------------}
PROCEDURE TInputLine.GetData (Var Rec); PROCEDURE TInputLine.GetData (Var Rec);
BEGIN BEGIN
If (Data <> Nil) Then Begin { Data ptr valid } If Data <> Sw_PString_Empty Then Begin { Data ptr valid }
If (Validator = Nil) OR (Validator^.Transfer(Data^, If (Validator = Nil) OR (Validator^.Transfer(Data Sw_PString_DeRef,
@Rec, vtGetData) = 0) Then Begin { No validator/data } @Rec, vtGetData) = 0) Then Begin { No validator/data }
FillChar(Rec, DataSize, #0); { Clear the data area } FillChar(Rec, DataSize, #0); { Clear the data area }
Move(Data^, Rec, Length(Data^) + 1); { Transfer our data } Move(Data Sw_PString_DeRef, Rec, SizeOf(Sw_Char)*(Length(Data Sw_PString_DeRef) + 1)); { Transfer our data }
End; End;
End Else FillChar(Rec, DataSize, #0); { Clear the data area } End Else FillChar(Rec, DataSize, #0); { Clear the data area }
END; END;
@ -1538,10 +1538,10 @@ END;
{---------------------------------------------------------------------------} {---------------------------------------------------------------------------}
PROCEDURE TInputLine.SetData (Var Rec); PROCEDURE TInputLine.SetData (Var Rec);
BEGIN BEGIN
If (Data <> Nil) Then Begin { Data ptr valid } If Data <> Sw_PString_Empty Then Begin { Data ptr valid }
If (Validator = Nil) OR (Validator^.Transfer( If (Validator = Nil) OR (Validator^.Transfer(
Data^, @Rec, vtSetData) = 0) Then { No validator/data } Data Sw_PString_DeRef, @Rec, vtSetData) = 0) Then { No validator/data }
Move(Rec, Data^[0], DataSize); { Set our data } Move(Rec, Data Sw_PString_DeRef[0], DataSize); { Set our data }
End; End;
SelectAll(True); { Now select all } SelectAll(True); { Now select all }
END; END;

View File

@ -148,6 +148,7 @@ TYPE
{$IFDEF FV_UNICODE} {$IFDEF FV_UNICODE}
TYPE TYPE
Sw_String = UnicodeString; Sw_String = UnicodeString;
Sw_Char = WideChar;
Sw_PString = UnicodeString; Sw_PString = UnicodeString;
Sw_ExtendedGraphemeCluster = UnicodeString; Sw_ExtendedGraphemeCluster = UnicodeString;
CONST CONST
@ -155,6 +156,7 @@ CONST
{$ELSE FV_UNICODE} {$ELSE FV_UNICODE}
TYPE TYPE
Sw_String = ShortString; Sw_String = ShortString;
Sw_Char = Char;
Sw_PString = PShortString; Sw_PString = PShortString;
Sw_ExtendedGraphemeCluster = Char; Sw_ExtendedGraphemeCluster = Char;
CONST CONST