If you want database components like DBGrid and DBEdit to show years with 4
digits instead of 2, changing the FOURDIGITYEAR variable to True in the BDE
admin program seemingly has no effect. If you have Paradox or some database management
system on your computer, and you change its date format to mm/dd/yyyy, that works
fine in Paradox or whatever... but in your Delphi programs, the date fields of
the tables still are displayed with 2 digit years!
If you use Delphi's DatePicker component, you'll see that it displays
the year just like your DBGrids, so the problem has nothing to do with the
database engine. But when you set Windows' Regional
Settings to display dates as mm/dd/yyyy and next start a Delphi application, date
fields are displayed as mm/dd/yyyy. Problem solved? No, the user surely won't appreciate it if
you enforce him to change his Windows settings, resulting in problems in other
The formats for dates and numbers in Delphi programs are
defined by a set of global formatting variables. These variables are
automatically set according to Windows' settings. As one of the first actions in your program, you can change
these global variables to the desired formats, thus overriding Windows' settings (don't
worry, the modified settings are only used in your application, they do not
affect Windows' Regional Settings).
If your application shows dates and/or floating point numbers,
set the global formatting variables ShortDateFormat,
and so on... to the desired values. Do this right after the start of your
application, for example in the OnCreate event handler of the main form.
A project with examples of this technique is contained in the zip-file DFORMAT.ZIP in
the Download section, under the heading Mini