zcatzz, si bien puedes intentar con otras componentes, yo creo que lo mejor sería primero ver porque está fallando el control estándar.
Ya has visto que ShortDateFormat no te va a servir, lo cual está explicado en la ayuda de Delphi:
Cita:
TDateTimePicker formats date and time values according to the date and time settings in the Regional Settings of the Control panel on the user’s system. Because TDateTimePicker is a wrapper for a Windows control, these formats can’t be changed by changing the formatting variables in the SysUtils unit. However, you can use the Windows API call DateTime_SetFormat to programmatically specify these settings.
|
Así, pues, vayamos olvidándonos de esa parte del código.
Como ves, la misma ayuda menciona el uso de DateTime_SetFormat, que básicamente es lo que ya tienes con Perform, aunque veo un poco rara la forma en que lo usas, ¿qué tipo de datos tiene tu variable Formato?
Por otra parte, no entiendo por qué asignas la fecha al datetimepicker con una doble conversión:
datetime -> string -> datetime
cuando puedes hacerlo directamente. Los valores Date o DateTime no dependen del formato que se use para mostrarlos.
Así pues, yo primero que nada intentaría- a falta de la propiedad Format que, por lo visto, no viene en Delphi 5- usar el Perform:
Código Delphi
[-]
var
Fmt: String;
begin
Fmt := 'dd/MM/yyyy';
FechaC.DateTime := Now;
FechaC.Perform(DTM_SETFORMAT, 0, Integer(PChar(Fmt)));
end;
// Saludos