* Fix from Bart for issue #39938

This commit is contained in:
Michaël Van Canneyt 2022-10-04 11:14:00 +02:00
parent f8848dd185
commit e736011c37

View File

@ -780,31 +780,34 @@ begin
end//FMaskSave = True end//FMaskSave = True
else else
begin//FMaskSave = False begin//FMaskSave = False
if FTrimType = metTrimRight then if Value<>'' then
begin begin
//fill text from left to rigth, skipping MaskLiterals if FTrimType = metTrimRight then
j := 1;
for i := 1 to FMaskLength do
begin begin
if not IsLiteral(FMask[i]) then //fill text from left to rigth, skipping MaskLiterals
j := 1;
for i := 1 to FMaskLength do
begin begin
if (AValue[j] = #32) then S[i]:= FSpaceChar else S[i] := AValue[j]; if not IsLiteral(FMask[i]) then
Inc(j); begin
if j > Length(AValue) then Break; if (AValue[j] = #32) then S[i]:= FSpaceChar else S[i] := AValue[j];
Inc(j);
if j > Length(AValue) then Break;
end;
end; end;
end; end
end else
else
begin
//fill text from right to left, skipping MaskLiterals
j := Length(AValue);
for i := FMaskLength downto 1 do
begin begin
if not IsLiteral(FMask[i]) then //fill text from right to left, skipping MaskLiterals
j := Length(AValue);
for i := FMaskLength downto 1 do
begin begin
if (AValue[j] = #32) then S[i] := FSpaceChar else S[i] := AValue[j]; if not IsLiteral(FMask[i]) then
Dec(j); begin
if j < 1 then Break; if (AValue[j] = #32) then S[i] := FSpaceChar else S[i] := AValue[j];
Dec(j);
if j < 1 then Break;
end;
end; end;
end; end;
end; end;