Ver Mensaje Individual
  #4  
Antiguo 10-02-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Reputación: 20
keyboy Va por buen camino
Cita:
Empezado por RoyTan Ver Mensaje
no sé que estoy haciendo mal.
No estás haciendo nada mal; es sólo que esperas un resultado distinto el que la función Format te da. Si lees la documentación, verás que los separadores de millares sólo se ponen para el especificador %n, no menciona nada al respecto para el especificador %d.

No puedes usar directamente %n para un entero, pero si puedes convertir ese entero a flotante:

Código Delphi [-]
StaticText2.Caption := Format('%n', [Contador + 0.0]) + ' Registros';

El compilador de delphi, al ver el sumando 0.0, convierte automáticamente el otro sumando en un real. Con esto obtienes los separadores que quieres. Sin embargo, el resultado no es óptimo porque aparecen dos ceros decimales:

1.000.000,00

lo que se ve extraño si se habla de número de registros. Pero puedes suprimirlos así:

Código Delphi [-]
StaticText2.Caption := Format('%.0n', [Contador + 0.0]) + ' Registros';

El número entre el punto y n indica el número de decimales que quieres mostrar (en este caso, cero, es decir, ninguno).

Otra opción es usar FormatFloat:

Código Delphi [-]
StaticText2.Caption := FormatFloat('0,', [Contador]) + ' Registros';

Por otro lado, si ya estás usando una función como Format, veo más natural usar la terminación 'Registros' en la misma cadena de formato.

Código Delphi [-]
StaticText2.Caption := Format('%.0n Registros', [Contador + 0.0]);

o bien

Código Delphi [-]
StaticText2.Caption := FormatFloat('0, Registros', [Contador]);

Bye
Responder Con Cita