PDA

Ver la Versión Completa : Cambiar formato fecha de un TDataSet


Jose Roman
24-08-2017, 00:33:10
Cordial saludo,


Trabajo con Delphi XE8 y me gustaría mostrar la primera letra del mes en mayúscula como lo realizado en el hilo Como poner primer letra Mayuscula en el mes? (https://www.clubdelphi.com/foros/showthread.php?t=11501), pero obviamente en esta version de Delphi no se hace de esta forma, como lo hago entonces?

AgustinOrtu
24-08-2017, 04:56:08
Y por que no te funciona? Ese codigo deberia ser compatible, por suerte Delphi tiene muy buena compatibilidad hacia atras

Guti13
24-08-2017, 08:40:32
Jose Roman, como te dice AgustínOrtu, ese código funciona perfectamente en todas las versiones de Delphi ya que el registro TFormatSettings ha sufrido mínimos cambios desde tiempos inmemoriales.

Jose Roman
24-08-2017, 10:18:13
Gracias por su respuesta, entonces algo está mal hecho, quien me puede ayudar con un ejemplo

Guti13
24-08-2017, 10:37:26
Prueba esto, el lugar donde lo pongas ya depende de ti, yo prefiero hacer un procedimiento de configuraciones iniciales que puedes llamar desde el Create del formulario principal o desde el fuente del proyecto, eso ya cada uno con sus manías.:


unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
FormatSettings.ShortMonthNames[1]:='Ene';
FormatSettings.ShortMonthNames[2]:='Feb';
FormatSettings.ShortMonthNames[3]:='Mar';
FormatSettings.ShortMonthNames[4]:='Abr';
FormatSettings.ShortMonthNames[5]:='May';
FormatSettings.ShortMonthNames[6]:='Jun';
FormatSettings.ShortMonthNames[7]:='Jul';
FormatSettings.ShortMonthNames[8]:='Ago';
FormatSettings.ShortMonthNames[9]:='Sep';
FormatSettings.ShortMonthNames[10]:='Oct';
FormatSettings.ShortMonthNames[10]:='Nov';
FormatSettings.ShortMonthNames[10]:='Dec';
end;


Ejemplo hecho con Delphi 10 Seattle

AgustinOrtu
24-08-2017, 17:47:04
Pon tu codigo e indica donde da error

darkerbyte
28-08-2017, 22:16:58
Si es para un data set puedes hacerlo de dos maneras
1. Crear campos persistentes y en el campo de la fecha que quieres modificar el atributo DisplayFormat :=' dd Mmm. yyyy'
2. En tiempo de ejecución:
Haz tu consulta y después de abrir el dataset pon este código: TDateTimeField( Dataset.FieldByName('campo') ).DisplayFormat := 'dd Mmm. yyyy';
Claro que esta linea la tienes que ejecutar cada vez que abras la consulta