mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-12 10:22:44 +02:00
503 lines
30 KiB
HTML
503 lines
30 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||
<HTML>
|
||
<HEAD>
|
||
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
|
||
<TITLE></TITLE>
|
||
<META NAME="GENERATOR" CONTENT="LibreOffice 4.0.2.2 (Linux)">
|
||
<META NAME="AUTHOR" CONTENT="Zoran Vučenović">
|
||
<META NAME="CREATED" CONTENT="20100120;12052000">
|
||
<META NAME="CHANGEDBY" CONTENT="Zoran ">
|
||
<META NAME="CHANGED" CONTENT="20131012;20570900">
|
||
<STYLE TYPE="text/css">
|
||
<!--
|
||
@page { margin: 2.01cm }
|
||
P { margin-bottom: 0.2cm }
|
||
H4.cjk { font-family: "WenQuanYi Micro Hei" }
|
||
H4.ctl { font-family: "Mangal" }
|
||
A.cjk:link { so-language: zxx }
|
||
A.ctl:link { so-language: zxx }
|
||
-->
|
||
</STYLE>
|
||
</HEAD>
|
||
<BODY LANG="en-GB" DIR="LTR">
|
||
<P ALIGN=CENTER STYLE="margin-bottom: 0cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=4 STYLE="font-size: 16pt"><B>DateTimeControls
|
||
Package for Lazarus</B></FONT></FONT></P>
|
||
<P ALIGN=CENTER STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P ALIGN=CENTER STYLE="margin-bottom: 0cm"><A CLASS="western" HREF="http://wiki.lazarus.freepascal.org/ZVDateTimeControls_Package"><FONT FACE="Arial, sans-serif"><FONT SIZE=3><SPAN LANG="en-GB"><SPAN STYLE="font-weight: normal">http://wiki.lazarus.freepascal.org/ZVDateTimeControls_Package</SPAN></SPAN></FONT></FONT></A></P>
|
||
<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P ALIGN=CENTER STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P ALIGN=LEFT STYLE="margin-bottom: 0cm; font-weight: normal"><FONT FACE="Arial, sans-serif"><FONT SIZE=4>The
|
||
DateTimeControls package contains two controls:</FONT></FONT></P>
|
||
<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P ALIGN=LEFT STYLE="margin-left: 2.01cm; margin-bottom: 0cm"><IMG SRC="pictures/TDateTimePicker.png" NAME="grafika2" ALIGN=BOTTOM WIDTH=24 HEIGHT=24 BORDER=0><A CLASS="western" HREF="#TDateTimePicker">
|
||
</A><A CLASS="western" HREF="#TDateTimePicker"><FONT FACE="Arial, sans-serif"><FONT SIZE=3><SPAN LANG="en-GB"><SPAN STYLE="font-weight: normal">TDateTimePicker</SPAN></SPAN></FONT></FONT></A></P>
|
||
<P ALIGN=LEFT STYLE="margin-left: 2.01cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P ALIGN=LEFT STYLE="margin-left: 2.01cm; margin-bottom: 0cm"><IMG SRC="pictures/TDBDateTimePicker.png" NAME="grafika5" ALIGN=BOTTOM WIDTH=24 HEIGHT=24 BORDER=0><A CLASS="western" HREF="#TDBDateTimePicker">
|
||
</A><A CLASS="western" HREF="#TDBDateTimePicker"><FONT FACE="Arial, sans-serif"><FONT SIZE=3><SPAN LANG="en-GB"><SPAN STYLE="font-weight: normal">TDBDateTimePicker</SPAN></SPAN></FONT></FONT></A></P>
|
||
<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><FONT FACE="Arial, sans-serif"><B>Author</B></FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><A CLASS="western" HREF="http://wiki.lazarus.freepascal.org/User:Zoran"><FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB"><SPAN STYLE="font-weight: normal">Zoran
|
||
Vučenović</SPAN></SPAN></FONT></A></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-bottom: 0cm"><FONT FACE="Arial, sans-serif"><B>License</B></FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm; font-weight: normal">
|
||
<FONT FACE="Arial, sans-serif">Modified LGPL, same as Lazarus
|
||
component library.</FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><FONT FACE="Arial, sans-serif"><B>Introduction</B></FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">Delphi's
|
||
VCL has <A CLASS="western" HREF="http://docwiki.embarcadero.com/VCL/en/ComCtrls.TDateTimePicker">a
|
||
control named TDateTimePicker</A>, which I find very useful for
|
||
editing dates. LCL, however, does not have this control. Instead, for
|
||
editing dates <A CLASS="western" HREF="http://lazarus-ccr.sourceforge.net/docs/lcl/editbtn/tdateedit.html">LCL
|
||
has a control named TDateEdit</A>, but I prefer the VCL's
|
||
TDateTimePicker.</SPAN></FONT></P>
|
||
<P ALIGN=LEFT STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><FONT FACE="Arial, sans-serif">Therefore,
|
||
I tried to create a cross-platform Lazarus control which would
|
||
resemble VCL's TDateTimePicker as much as possible.</FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">The
|
||
TDateTimePicker control does not use <A CLASS="western" HREF="http://msdn.microsoft.com/en-us/library/system.windows.forms.datetimepicker.aspx">native
|
||
Win control</A>. It descends from LCL's TCustomControl to be
|
||
cross-platform. It has been tested on Windows with win32/64 and qt
|
||
widgetsets, as well as on Linux with qt and gtk2 widgetsets.</SPAN></FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><FONT FACE="Arial, sans-serif">Note
|
||
that the TDateTimePicker control does not descend from TEdit, so it
|
||
does not have unnecessary caret. The VCL's control doesn't have caret
|
||
either.</FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-bottom: 0cm"><FONT FACE="Arial, sans-serif"><B>Installation</B></FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><FONT FACE="Arial, sans-serif">To
|
||
install the package in Lazarus IDE follow these steps:</FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<OL>
|
||
<OL>
|
||
<LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Arial, sans-serif">Open
|
||
the package in Package Editor (in Lazarus' main menu click <I>Package</I>,
|
||
then <I>Open package file...</I> locate the file
|
||
<I>datetimectrls.lpk</I> and click <I>Open</I>).</FONT></P>
|
||
<LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Arial, sans-serif">Compile
|
||
the package (click <I>Compile</I> in Package Editor's tool bar).</FONT></P>
|
||
<LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Arial, sans-serif">Install
|
||
the package in the IDE (click <I>Install</I> – you will be asked
|
||
if you want to rebuild Lazarus, click <I>Yes</I>. Wait until
|
||
Lazarus rebuilds and restarts itself. The new tab “<I>Date and
|
||
Time Ctrls”</I> appears on the component palette with
|
||
TDateTimePicker and TDBDateTimePicker controls.</FONT></P>
|
||
</OL>
|
||
</OL>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-bottom: 0cm"><FONT FACE="Arial, sans-serif"><B>Change
|
||
Log</B></FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm; font-weight: normal">
|
||
<FONT FACE="Arial, sans-serif">For more details about changes, see
|
||
ChangeLog.txt</FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm; font-weight: normal">
|
||
<FONT FACE="Arial, sans-serif">Version 1.0 – 27. February 2010.</FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm; font-weight: normal">
|
||
<FONT FACE="Arial, sans-serif">Version 1.1 – 17. April 2010.</FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm; font-weight: normal">
|
||
<FONT FACE="Arial, sans-serif">Version 1.2 – 12. May 2010.</FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm; font-weight: normal">
|
||
<FONT FACE="Arial, sans-serif">Version 1.3 – 1. April 2011.</FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-bottom: 0cm; font-weight: normal">
|
||
<FONT FACE="Arial, sans-serif">Version 1.4 – 4. September 2012.</FONT></P>
|
||
<P STYLE="margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-bottom: 0cm"><A NAME="TDateTimePicker"></A><FONT FACE="Arial, sans-serif"><B>TDateTimePicker
|
||
<IMG SRC="pictures/TDateTimePicker.png" NAME="grafika9" ALIGN=MIDDLE WIDTH=24 HEIGHT=24 BORDER=0></B></FONT></P>
|
||
<P STYLE="margin-left: 0.84cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>Properties:</B></FONT></P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">I'll explain some properties of
|
||
TDateTimePicker control: </FONT>
|
||
</P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>DateTime: TDateTime (public)</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">The DateTime value
|
||
displayed on the control. This property is not published in object
|
||
inspector, but its value is actually the same as Date and Time
|
||
properties composed in one value. This property is provided to allow
|
||
setting or reading of both date and time value at once in program
|
||
code. In design time, Date and Time can be set in object inspector.
|
||
<A CLASS="western" HREF="#DateTimePicker Editor">There is also
|
||
component editor</A> which provides easy way of setting this property
|
||
in design time.</SPAN></FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>Date: TDate</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">The date displayed on the control
|
||
which the user can edit.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>Time: TTime</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">The time displayed on the control
|
||
which the user can edit.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>MinDate: TDate</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">The minimal date user can enter.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>MaxDate: TDate</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">The maximal date user can enter.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm"><A NAME="NullInputAllowed"></A>
|
||
<FONT FACE="Arial, sans-serif"><B>NullInputAllowed: Boolean</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">When True, the user can set the date
|
||
to NullDate constant by pressing N key.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>CenturyFrom: Word</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">When user enters the year in two-digit
|
||
format, then the CenturyFrom property is used to determine which
|
||
century the year belongs to. The default is 1941, which means that
|
||
when two digit years is entered, it falls in interval 1941 – 2040.
|
||
Note that MinDate and MaxDate properties can also have influence on
|
||
the decision – for example, if the CenturyFrom is set to 1941 and
|
||
MaxDate to 31. 12. 2010, if user enters year 23, it will be set to
|
||
1923, because it can’t be 2033, due to MaxDate limit.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm"><A NAME="Kind"></A>
|
||
<FONT FACE="Arial, sans-serif"><B>Kind: TDateTimeKind</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Courier New, monospace"><B>type</B> TDateTimeKind =
|
||
(dtkDate, dtkTime, dtkDateTime);</FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">The control displays only date, only
|
||
time or both.</FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<IMG SRC="pictures/DateControls03.PNG" NAME="grafika4" ALIGN=BOTTOM WIDTH=332 HEIGHT=40 BORDER=0></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>DateMode: TDTDateMode</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Courier New, monospace"><B>type</B> TDTDateMode =
|
||
(dmComboBox, dmUpDown, dmNone);</FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">When DateMode is
|
||
set to dmComboBox, there is a button on the right side of the
|
||
control. When user clicks the button, <A CLASS="western" HREF="http://lazarus-ccr.sourceforge.net/docs/lcl/calendar/tcalendar.html">the
|
||
calendar control</A> is shown, allowing the user to pick the date.
|
||
When set to dmUpDown, then UpDown buttons are shown.</SPAN></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">In my opinion the UpDown buttons
|
||
aren't really useful in this control, they are provided for
|
||
compatibility with Delphi's TDateTimePicker. Up and down keys can
|
||
always serve for same purpose, so can mouse wheel.</FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">In the next picture the first
|
||
control's DateMode is set to dmComboBox and the second control's to
|
||
dmUpDown.</FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<IMG SRC="pictures/DateControls01.PNG" NAME="grafika1" ALIGN=BOTTOM WIDTH=151 HEIGHT=72 BORDER=0></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">If DateMode is dmComboBox, when the
|
||
user clicks on the button a calendar drops down, allowing the user to
|
||
pick a date.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>Note:</B> if Kind property is set
|
||
to dtkTime, the calendar control is pointless. Therefore, if DateMode
|
||
is dmComboBox, the UpDown is shown instead.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>ShowCheckBox: Boolean</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">When set, there is a check box on the
|
||
left side of the control. When unchecked, the display appears grayed
|
||
and user interaction with the date or time is not possible. (The
|
||
control is still enabled, though, only in sense that the check box
|
||
remains enabled).</FONT></P>
|
||
<P STYLE="margin-left: 2.01cm"><IMG SRC="pictures/DateControls02.PNG" NAME="grafika3" ALIGN=BOTTOM WIDTH=116 HEIGHT=35 BORDER=0></P>
|
||
<P><BR><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>Checked: Boolean</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">If ShowCheckBox is set to True, this
|
||
property determines whether the check box is checked or not. If
|
||
ShowCheckBox is False, this property has no purpose and is
|
||
automatically set to True.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>DateDisplayOrder: TDateDisplayOrder</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Courier New, monospace"><B>type</B> TDateDisplayOrder =
|
||
(ddoDMY, ddoMDY, ddoYMD, ddoTryDefault);</FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">Defines the order
|
||
for displaying day, month and year part of the date. When
|
||
ddoTryDefault is set, then the controls tries to determine the order
|
||
from <A CLASS="western" HREF="http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/shortdateformat.html">ShortDateFormat
|
||
global variable</A>.</SPAN></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">This is similar to
|
||
<A CLASS="western" HREF="http://lazarus-ccr.sourceforge.net/docs/lcl/editbtn/tdateedit.dateorder.html">DateEdit's
|
||
DateOrder</A> property.</SPAN></FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>DateSeparator: String</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">Defines the string used to separate
|
||
date, month and year date parts. Setting this property automatically
|
||
sets the UseDefaultSeparators property to False. To ensure that date
|
||
and time separators are set to user's system defaults, set
|
||
UseDefaultSeparators property to True.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>TimeSeparator: String</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">Defines the string used to separate
|
||
hour, minute, second and millisecond time parts. Setting this
|
||
property automatically sets the UseDefaultSeparators property to
|
||
False. To ensure that date and time separators are set to user's
|
||
system defaults, set UseDefaultSeparators property to True.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>UseDefaultSeparators: Boolean</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">When this property
|
||
is set to True, then the DateSeparator and TimeSeparator properties
|
||
will be set to <A CLASS="western" HREF="http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/dateseparator.html">DateSeparator</A>
|
||
and <A CLASS="western" HREF="http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/timeseparator.html">TimeSeparator</A>
|
||
global variables, which are set to user system defaults when
|
||
application initializes.</SPAN></FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>TrailingSeparator: Boolean</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">When set to True, then the
|
||
DateSeparator is shown once more, after the last date part. This
|
||
property exists because in some languages the correct date format is
|
||
<B>31. 1. 2010.</B> including the last point, after the year.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>LeadingZeros: Boolean</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">Determines whether the date and time
|
||
parts are displayed with or without leading zeros (this actually
|
||
affects day, month and hour parts of date and time display).</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm"><A NAME="TimeDisplay"></A>
|
||
<FONT FACE="Arial, sans-serif"><B>TimeDisplay: TTimeDisplay</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><FONT FACE="Courier New, monospace"><B>type</B></FONT>
|
||
<FONT FACE="Courier New, monospace">TTimeDisplay = (tdHM, tdHMS,
|
||
tdHMSMs);</FONT></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">If Kind is dtkTime or dtkDateTime,
|
||
then TimeDisplay value of tdHM means that only hours and minutes are
|
||
displayed, tdHMS adds displaying of seconds and value of tdHMSMs
|
||
means that milliseconds are displayed too.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>TimeFormat: TTimeFormat</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Courier New, monospace"><B>type</B> TTimeFormat = (tf12,
|
||
tf24);</FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">The value of tf12 sets the display of
|
||
time to 12 hours format, with AM/PM string and tf24 sets to 24 hours
|
||
format.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm"><A NAME="TextForNullDate"></A>
|
||
<FONT FACE="Arial, sans-serif"><B>TextForNullDate: String</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">Text which appears
|
||
when the null date is set and control does not have focus. When
|
||
control is focused, the text changes to defined format, but
|
||
displaying zeros for date, and nines for time (for example
|
||
"00/00/0000 99:99:99"), which is appropriate to user input.
|
||
User can set the date to NullDate by pressing N key, provided
|
||
<A CLASS="western" HREF="#NullInputAllowed">NullInputAllowed</A>
|
||
property is True.</SPAN></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">When TextForNullDate is set to empty
|
||
string, zeros/nines format is displayed even when control does not
|
||
have focus. If you want empty display, this can be achieved by
|
||
setting TextForNullDate to one or more space characters.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>AutoAdvance: Boolean</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">When true, then when user is entering
|
||
valid text, the selection automatically advances to next part of
|
||
date/time. The default is False because of compatibility with
|
||
previous version, but switching on this option makes user interaction
|
||
easier, this is a useful option and I recommend setting this property
|
||
to true.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>Cascade: Boolean</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">When true, then when user is
|
||
increasing or decreasing one date/time part (using up-down keys or
|
||
mouse wheel), it can increase or decrease by one another date/time
|
||
part. For example, when date is 31.08.2013. and user increases the
|
||
day, the day becomes 1 and month increases by one and becomes 9, so
|
||
the date becomes 01.09.2013. If Cascade were set to False, the month
|
||
would not change and the date would become 01.08.2013.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>AutoButtonSize: Boolean</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">When true, the width of the arrow
|
||
button (or up-down control, if it is shown instead) is automatically
|
||
adjusted proportionally to the height.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>HideDateTimeParts: TDateTimeParts</B></FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Courier New, monospace"><B>type</B></FONT></P>
|
||
<P STYLE="margin-left: 2.49cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Courier New, monospace">TDateTimePart = (dtpDay,
|
||
dtpMonth, dtpYear, dtpHour, dtpMinute, dtpSecond, dtpMiliSec,
|
||
dtpAMPM);</FONT></P>
|
||
<P STYLE="margin-left: 2.49cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Courier New, monospace">TDateTimeParts = set of
|
||
dtpDay..dtpMiliSec;</FONT></P>
|
||
<P STYLE="margin-left: 2.01cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">Wit</SPAN></FONT><FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB"><SPAN STYLE="font-weight: normal">h
|
||
HideDateTimeParts prope</SPAN></SPAN></FONT><FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">rty,
|
||
you can chose which date/time parts will not be shown. Most of the
|
||
time you do not need to use this property and you can get the format
|
||
you want by using other properties (see <A CLASS="western" HREF="#Kind">Kind</A>,
|
||
<A CLASS="western" HREF="#TimeDisplay">TimeDisplay</A>). However, if
|
||
you need more control (for example, you might want to let user edit
|
||
only days, months and hours), you can additionally hide any date/time
|
||
parts with this control. Keep in mind that, with this property, you
|
||
cannot show any date/time part which is hidden by another property
|
||
(for example, if TimeDisplay is tdHM, the second part is not shown,
|
||
regardless of this property).</SPAN></FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><A NAME="TDBDateTimePicker"></A>
|
||
<FONT FACE="Arial, sans-serif"><B>TDBDateTimePicker
|
||
<IMG SRC="pictures/TDBDateTimePicker.png" NAME="grafika6" ALIGN=MIDDLE WIDTH=24 HEIGHT=24 BORDER=0></B></FONT></P>
|
||
<P STYLE="margin-left: 0.84cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">TDBDateTimePicker is a data-aware
|
||
version of TDateTimePicker, with nice way of handling null database
|
||
values.</FONT></P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><BR>
|
||
</P>
|
||
<H4 CLASS="western" STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0.2cm">
|
||
<FONT FACE="Arial, sans-serif"><B>Displaying null values </B></FONT>
|
||
</H4>
|
||
<DL>
|
||
<DL>
|
||
<DD STYLE="margin-bottom: 0.51cm"><FONT FACE="Arial, sans-serif">When
|
||
the underlying DB field has null value, then:</FONT></DD></DL>
|
||
</DL>
|
||
<UL>
|
||
<UL>
|
||
<LI><DD STYLE="margin-bottom: 0.51cm">
|
||
<FONT FACE="Arial, sans-serif">When the control gets focus, the
|
||
text changes to defined format, but displaying zeros for date parts
|
||
and nines for time parts (for example "00/00/0000 99:99:99"),
|
||
which is appropriate to user input.</FONT></DD><LI><DD STYLE="margin-bottom: 0.51cm">
|
||
<FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">When the control
|
||
is not focused, then it displays the text defined in
|
||
<A CLASS="western" HREF="#TextForNullDate">TextForNullDate</A>
|
||
property. The default is "NULL".</SPAN></FONT></DD></UL>
|
||
</UL>
|
||
<H4 CLASS="western" STYLE="margin-left: 1.47cm; margin-top: 0.18cm; margin-bottom: 0.2cm">
|
||
<FONT FACE="Arial, sans-serif">Setting the field value to null </FONT>
|
||
</H4>
|
||
<DL>
|
||
<DL>
|
||
<DD STYLE="margin-bottom: 0.51cm"><FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">If
|
||
<A CLASS="western" HREF="#NullInputAllowed">NullInputAllowed</A>
|
||
property is True, the user can set the date and time to null, by
|
||
pressing N key. </SPAN></FONT>
|
||
</DD></DL>
|
||
</DL>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<A NAME="DateTimePicker Editor"></A><FONT FACE="Arial, sans-serif"><B>DateTimePicker
|
||
Editor</B></FONT></P>
|
||
<P STYLE="margin-left: 0.84cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<IMG SRC="pictures/DateTimePickerEditor.PNG" NAME="grafika8" ALIGN=BOTTOM WIDTH=404 HEIGHT=188 BORDER=0></P>
|
||
<P STYLE="margin-left: 0.84cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif">DateTimePicker Editor is a dialog
|
||
which provides easy way to set Date, Time, MinDate and MaxDate
|
||
properties in design time. It is invoked when DateTimePicker
|
||
control is double-clicked in form designer. It is also shown when the
|
||
ellipsis (…) button, shown in Date, Time, MinDate and MaxDate
|
||
properties in Object inspector, gets clicked.</FONT></P>
|
||
<P STYLE="margin-bottom: 0.51cm"><BR><BR>
|
||
</P>
|
||
<P STYLE="margin-top: 0.18cm; margin-bottom: 0cm"><FONT FACE="Arial, sans-serif"><B>Tips</B></FONT></P>
|
||
<P STYLE="margin-left: 0.84cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><B>Q:</B> When the date/time value is
|
||
null, how to display zeros/nines in user format, no matter whether
|
||
the control is focused or not?</FONT></P>
|
||
<P STYLE="margin-left: 0.84cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB"><B>A:</B></SPAN></FONT>
|
||
<FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">Set <A CLASS="western" HREF="#TextForNullDate">TextForNullDate</A>
|
||
property to empty string. If TextForNullDate is set to empty string,
|
||
then zeros/nines are displayed, same as when the control has focus.</SPAN></FONT></P>
|
||
<P STYLE="margin-left: 0.84cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<BR>
|
||
</P>
|
||
<P STYLE="margin-left: 0.84cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB"><B>Q:</B></SPAN></FONT>
|
||
<FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">When the date/time
|
||
value is null, If empty string in <A CLASS="western" HREF="#TextForNullDate">TextForNullDate</A>
|
||
property actually sets the display to zeros/nines format, how to set
|
||
the control to display nothing?</SPAN></FONT></P>
|
||
<P STYLE="margin-left: 0.84cm; margin-top: 0.18cm; margin-bottom: 0cm">
|
||
<FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB"><B>A:</B></SPAN></FONT>
|
||
<FONT FACE="Arial, sans-serif"><SPAN LANG="en-GB">Set <A CLASS="western" HREF="#TextForNullDate">TextForNullDate</A>
|
||
property to one space character, you will get the empty display.</SPAN></FONT></P>
|
||
</BODY>
|
||
</HTML> |