Hello Bart,由于是设计时的显示Bug,debug不了IDE Bug,不过发现是MaskEdit.pp的function TCustomMaskEdit.ClearChar(Position : Integer) : TUtf8Char;
Because it is a design time display bug, the IDE bug cannot be debugged, but it is found in maskedit Function tcustommaskedit Clearchar (position: integer): tutf8char;
function TCustomMaskEdit.ClearChar(Position : Integer) : TUtf8Char;
begin
//For Delphi compatibilty, only literals remain, all others will be blanked
case GetMask(Position).MaskType Of
{Char_Space : Result := #32; //FSpaceChar?; //not Delphi compatible, see notes above}
Char_HourSeparator : Result := DefaultFormatSettings.TimeSeparator;//<---
Char_DateSeparator : Result := DefaultFormatSettings.DateSeparator;//<----
Char_IsLiteral : Result := FMask[Position].Literal; //No need to use GetMask, FMask[Position] already has been validated
otherwise
Result := FSpaceChar;
end;
end;
modi:
Char_HourSeparator : Result := ':';//DefaultFormatSettings.TimeSeparator;
Char_DateSeparator : Result := '/';//DefaultFormatSettings.DateSeparator;
然后重新编译lazarus,设计时显示就正常了,不清楚为什么设计时DefaultFormatSettings.DateSeparator为什么会出现问题。
Then recompile Lazarus, and the design time display will be normal. It is not clear why there are problems in the design time.
thanks!