Cita:
Empezado por compuin
Estimado Lucho,
Esta solucion funciona
Muchas gracias
|
No. No creo que funcione de esa manera. Para especificar la precisión hay que colocar el carácter "." y el "ancho".
Si estuviésemos usando la API
wsprintf basta con poner el ancho con un cero delante o el carácter precisión. Con Format solo funciona con el carácter precisión y el ancho.
Tres ejemplos:
Código Delphi
[-]
function TimeToStr(angle: extended): string;
var
d: integer;
m, s: extended;
begin
d:= Trunc(angle);
m:= abs(frac(angle)*60);
s:= Round(abs(frac(m)*60));
Result:= format('%.2dh %.2d'' %.2d"',[d, trunc(m), trunc(s)]);
end;
Código Delphi
[-]
function wsprintf(lpOut, lpFmt: PAnsiChar): Integer; cdecl; varargs; external 'User32.dll' name 'wsprintfA';
function TimeToStr2(angle:extended):string;
var
D: integer;
M,S: Extended;
Str: array [0..80] of AnsiChar;
begin
d:=Trunc(angle);
m:=abs(frac(angle)*60);
s:=Round(abs(frac(m)*60));
wsprintf(Str, '%02dh %02d'' %02d"', d, trunc(m), trunc(s));
Result:= Str;
end;
Código Delphi
[-]
function wsprintf(lpOut, lpFmt: PAnsiChar): Integer; cdecl; varargs; external 'User32.dll' name 'wsprintfA';
function TimeToStr3(angle:extended):string;
var
D: integer;
M,S: Extended;
Str: array [0..80] of AnsiChar;
begin
d:=Trunc(angle);
m:=abs(frac(angle)*60);
s:=Round(abs(frac(m)*60));
wsprintf(Str, '%.2dh %.2d'' %.2d"', d, trunc(m), trunc(s));
Result:= Str;
end;
Saludos.