在lazarus过程中,发现很多问题与DefaultFormatSettings有关(特别是在linux中使用)感觉lazarus没将DefaultFormatSettings赋予初始值,如mask字符中包含/:会出现乱码、unidac日期字段和浮点等问题。建议在project.lpr增加DefaultFormatSettings初始值避免程序出现各种异常,可以参考以下红色的代码。
program acs;
{$mode objfpc}
{$H+}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
Interfaces,
SysUtils,//要加这个单元
Forms,
main ;
{$R *.res}
begin
DefaultFormatSettings.ShortTimeFormat:='yyyy-mm-dd';
DefaultFormatSettings.ShortTimeFormat:='hh:NN:ss';
DefaultFormatSettings.LongDateFormat:='yyyy-mm-dd';
DefaultFormatSettings.LongTimeFormat:='hh:NN:ss';
DefaultFormatSettings.DateSeparator:='-';
DefaultFormatSettings.TimeSeparator:=':';
RequireDerivedFormResource := True;
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.