原因我已找到了,是TEmbeddedWB控件的一个小Bug.在EmbeddedWB.pas文件中找到下面一段代码,将FloatToStr(M * InchToMetric)改为FloatToStrDef(M * InchToMetric,075)就ok了。 function TEmbeddedWB.PrintMarginStr(M: Real): PChar; var S: string; begin if printOptions.Measure <> RuntimeMeasure then begin if RuntimeMeasure = mMetric then s := FloatToStr(M * InchToMetric) else s := FloatToStr(M / InchToMetric); Result := PChar(S); end else Result := PChar(FloatToStr(M)); end;
原因我已找到了,是TEmbeddedWB控件的一个小Bug.在EmbeddedWB.pas文件中找到下面一段代码,将FloatToStr(M * InchToMetric)改为FloatToStrDef(M * InchToMetric,0.75)就ok了。 function TEmbeddedWB.PrintMarginStr(M: Real): PChar; var S: string; begin if printOptions.Measure <> RuntimeMeasure then begin if RuntimeMeasure = mMetric then s := FloatToStr(M * InchToMetric) else s := FloatToStr(M / InchToMetric); Result := PChar(S); end else Result := PChar(FloatToStr(M)); end;
用NotePad打开DFM看看问题在那里了http://lysoft.7u7.net
function TEmbeddedWB.PrintMarginStr(M: Real): PChar;
var
S: string;
begin
if printOptions.Measure <> RuntimeMeasure
then begin
if RuntimeMeasure = mMetric then
s := FloatToStr(M * InchToMetric) else
s := FloatToStr(M / InchToMetric);
Result := PChar(S);
end else Result := PChar(FloatToStr(M));
end;
function TEmbeddedWB.PrintMarginStr(M: Real): PChar;
var
S: string;
begin
if printOptions.Measure <> RuntimeMeasure
then begin
if RuntimeMeasure = mMetric then
s := FloatToStr(M * InchToMetric) else
s := FloatToStr(M / InchToMetric);
Result := PChar(S);
end else Result := PChar(FloatToStr(M));
end;