Docs: DateTimeCtrls. Adds project and topics files to generate CHM and HTML help using FPDoc.

* Adds files with topic skeletons.
* Adds content for topics (partial).
* Merges content from the wiki page.
This commit is contained in:
dsiders 2023-02-04 00:06:16 +00:00
parent 8bb72e6ac4
commit 4de931e101
9 changed files with 5303 additions and 0 deletions

View File

@ -0,0 +1,213 @@
<?xml version="1.0" encoding="UTF-8"?>
<fpdoc-descriptions>
<package name="datetimecontrols">
<!--
====================================================================
calcontrolwrapper
====================================================================
-->
<module name="calcontrolwrapper">
<short>
Defines a base class which provides a wrapper for the calendar control
displayed in TDateTimePicker and descendent classes.
</short>
<descr>
<p>
By default, TDateTimePicker uses the LCL TCalendar control to represent its
drop-down calendar. But you can use some other calendar control instead. In
order to use another calendar control, you should "wrap" that control with
a CalendarControlWrapper.
</p>
<p>
For use in TDateTimePicker, the calendar control must at least provide a way
to determine whether the coordinates are on a date. When the control is
clicked, we must decide if the date has just been chosen and respond by
closing the drop-down form and setting the date from the calendar to the
DateTimePicker control. For example, in the LCL TCalendar will respond when
the calendar is clicked on a date, but not when the user clicks in the title
area changing month or year. Then we let the user keep browsing the calendar.
</p>
<p>
When creating a new wrapper, there are four abstract methods which need to be
overridden. Please see the comments in the code below.
</p>
<p>
<file>calcontrolwrapper.pas </file> is part of <file>DateTimeCtrls</file>
package for Lazarus.
</p>
<p>
<b>Author:</b>
</p>
<p>
Zoran Vučenović<br/>
Зоран Вученовић
</p>
<p>
<b>LICENSE</b>
</p>
<p>
Modified LGPL -- see the file COPYING.modifiedLGPL.
</p>
<p>
<b>NO WARRANTY</b>
</p>
<p>
There is no warranty whatsoever.
</p>
<p>
Original documentation is located on the Lazarus Wiki at:
</p>
<p>
<url href="https://wiki.freepascal.org/DateTimeCtrls_Package">
DateTimeCtrls Package
(https://wiki.freepascal.org/DateTimeCtrls_Package)
</url>
</p>
</descr>
<!-- used units -->
<element name="Controls"/>
<element name="TCalendarControlWrapper">
<short>
Specifies an abstract class used as wrapper for the calendar control used in
TDateTimePicker.
</short>
<descr>
<!-- TODO: Merge content from the wiki page. -->
</descr>
<seealso>
<link id="#datetimectrls.lazcalwrapper.TLCLCalendarWrapper">TLCLCalendarWrapper</link>
</seealso>
</element>
<!-- private -->
<element name="TCalendarControlWrapper.FCalendarControl"/>
<!-- public -->
<element name="TCalendarControlWrapper.GetCalendarControlClass">
<short>
Gets the class reference used to new instances of the calendar control.
</short>
<descr>
<p>
Should be overridden to return the class type for the calendar control.
</p>
</descr>
<seealso/>
</element>
<element name="TCalendarControlWrapper.GetCalendarControlClass.Result">
<short>
Returns TControlClass in TCalendarControlWrapper.
</short>
</element>
<element name="TCalendarControlWrapper.SetDate">
<short>
Abstract virtual method used to set the date for the calendar control.
</short>
<descr>
<p>
Should be overridden to set the date in the calendar control.
</p>
</descr>
<seealso/>
</element>
<element name="TCalendarControlWrapper.SetDate.Date">
<short>
TDate value stored in the date for the calendar control.
</short>
</element>
<element name="TCalendarControlWrapper.GetDate">
<short>
Abstract virtual method used to get the date for the calendar control.
</short>
<descr/>
<seealso/>
</element>
<element name="TCalendarControlWrapper.GetDate.Result">
<short>
TDate value read from the date in the calendar control.
</short>
</element>
<element name="TCalendarControlWrapper.AreCoordinatesOnDate">
<short>
Abstract virtual method which indicates if the coordinates (X, Y) are on a
date in the calendar control. TDateTimePicker calls this function when the
calendar is clicked, to determine whether the drop-down calendar should return
the date or not.
</short>
<descr/>
<seealso/>
</element>
<element name="TCalendarControlWrapper.AreCoordinatesOnDate.Result">
<short>
Returns <b>True</b> if the specified coordinates are on a date or an unused
area in the day grid for the calendar control.
</short>
</element>
<element name="TCalendarControlWrapper.AreCoordinatesOnDate.X">
<short>
Horizontal coordinate checked for a date value.
</short>
</element>
<element name="TCalendarControlWrapper.AreCoordinatesOnDate.Y">
<short>
Vertical coordinate checked for a date value.
</short>
</element>
<element name="TCalendarControlWrapper.InMonthView">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCalendarControlWrapper.InMonthView.Result">
<short/>
</element>
<element name="TCalendarControlWrapper.GetCalendarControl">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCalendarControlWrapper.GetCalendarControl.Result">
<short/>
</element>
<element name="TCalendarControlWrapper.Create">
<short>
Constructor for the class instance. It creates and uses a new instance of the
GetCalendarControl class type as the calendar control in the wrapper.
</short>
<descr/>
<seealso/>
</element>
<element name="TCalendarControlWrapper.Destroy">
<short>
Destructor for the class instance.
</short>
<descr>
<p>
Frees the calendar control allocated in the constructor, and calls the
inherited method to free the class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TCalendarControlWrapperClass">
<short>
Base class type used to create mew instances of a calendar control wrapper.
</short>
<descr/>
<seealso/>
</element>
</module>
<!-- calcontrolwrapper -->
</package>
</fpdoc-descriptions>

View File

@ -0,0 +1,18 @@
#!/bin/bash
#==========================================================================
# removes files generated using make-docs.sh and make-archive.sh
#==========================================================================
echo ""
echo "Removing generated files"
echo ""
# generated footers
rm -v ./datetimectrls-{chm,html}-footer.xml
# chm output
rm -v ./datetimectrls.{chm,xct}
# html archive file
rm -v ./docs-html-datetimectrls-*.7z
# html files
rm -vrf ./datetimectrls/
rm -v build_{chm,html}.log

View File

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<docproject>
<options>
<option name="ostarget" value="Win64"/>
<option name="cputarget" value="x86_64"/>
<option name="hide-protected" value="false"/>
<option name="show-private" value="false"/>
<option name="warn-no-node" value="false"/>
<option name="stop-on-parser-error" value="false"/>
<option name="parse-impl" value="false"/>
<option name="dont-trim" value="true"/>
<option name="emit-notes" value="false"/>
<option name="css-file" value="datetimectrls.css"/>
<option name="auto-toc" value="true"/>
<option name="auto-index" value="true"/>
<!--
pass format, footer, chm-title command line args
-->
</options>
<packages>
<package name="datetimectrls" output="datetimectrls" content="datetimectrls.xct">
<units>
<unit file="../datetimepicker.pas"/>
<unit file="../dbdatetimepicker.pas"/>
<unit file="../calcontrolwrapper.pas"/>
<unit file="../lclcalwrapper.pas"/>
</units>
<descriptions>
<description file="datetimepicker.xml"/>
<description file="dbdatetimepicker.xml"/>
<description file="calcontrolwrapper.xml"/>
<description file="lclcalwrapper.xml"/>
</descriptions>
<imports>
<!--
Import prefixes differ between output formats. Pass them as command line arguments.
-->
<!--
for CHM
file="../../../docs/chm/rtl.xct" prefix="ms-its:rtl.chm::/"
file="../../../docs/chm/fcl.xct" prefix="ms-its:fcl.chm::/"
file="../../../docs/chm/lcl.xct" prefix="ms-its:lcl.chm::/"
file="../../../docs/chm/lazutils.xct" prefix="ms-its:lazutils.chm::/"/>
-->
<!--
for HTML
file="../../../docs/chm/rtl.xct" prefix="../rtl/"
file="../../../docs/chm/fcl.xct" prefix="../fcl/"
file="../../../docs/chm/lcl.xct" prefix="../lcl/"
file="../../../docs/chm/lazutils.xct" prefix="../lazutils/"
-->
</imports>
</package>
</packages>
</docproject>

View File

@ -0,0 +1,204 @@
/*
datetimectrls.css
Modified fpdoc.css for use with the DateTimeCtrls package
*/
body {
background: white;
color: black;
font-size: 12pt;
font-family: "San Francisco", "Roboto", "Noto Sans", "Open Sans", "Segoe UI", "Helvetica", "Arial", sans-serif;
}
p, th, td, caption, h1, h2, h3, ul, ol, dl {
font-family: "San Francisco", "Roboto", "Noto Sans", "Open Sans", "Segoe UI", "Helvetica", "Arial", sans-serif;
color: black;
}
tt, span.kw, pre {
font-family: "Menlo", "JetBrains Mono", "Roboto Mono", "Noto Sans Mono", "Inconsolata", "Courier New", Courier, monospace;
font-size: 1em;
}
p, th, td, caption, ul, ol, dl, tt, span.kw, pre {
font-size: 1em;
}
A:link {
color: blue;
}
A:visited {
color: darkblue;
}
A:active {
color: red;
}
A {
text-decoration: none;
}
A:hover {
text-decoration: underline;
}
h1, h2, td.h2 {
color: #005A9C;
}
/* Especially for Netscape on Linux: */
h3, td.h3 {
font-size: 1em;
}
/* source fragments */
span.code {
white-space: nowrap;
}
/* symbols in source fragments */
span.sym {
color: darkred;
}
/* keywords in source fragments */
span.kw {
font-weight: bold;
}
/* comments in source fragments */
span.cmt {
color: darkcyan;
font-style: italic;
}
/* directives in source fragments */
span.dir {
color: OrangeRed;
font-style: italic;
}
/* numbers in source fragments */
span.num {
color: darkmagenta;
}
/* characters (#...) in source fragments */
span.chr {
color: darkcyan;
}
/* strings in source fragments */
span.str {
color: blue;
}
/* assembler passages in source fragments */
span.asm {
color: green;
}
td {
vertical-align: baseline;
}
td.pre {
white-space: pre;
}
table caption {
font-weight: bold;
}
p.cmt {
color: gray;
}
span.warning {
color: red;
font-weight: bold;
}
/* !!!: How should we define this...? */
span.file {
color: darkgreen;
}
table.remark {
background-color: #ffffc0;
}
table.bar {
background-color: #a0c0ff;
}
table.footer {
margin-top: .5em;
width: 100%;
font-size: .875em;
/* font-style: italic; */
font-style: normal;
}
span.bartitle {
font-weight: bold;
font-style: normal;
color: darkblue;
}
span.footer {
font-style: italic;
color: darkblue;
}
/* definition list */
dl {
/* border: 2px solid #ccc; */
display: block;
margin: 1em 0 1em 0;
}
/* definition list: term */
dt {
/*
float: left;
clear: left;
*/
width: auto; /* normally browsers default width of largest item */
/* padding-right: 1.25em; */
font-weight: bold;
color: darkgreen;
}
/* definition list: description */
dd {
margin: 0 0 0 2em;
padding: 0 0 0.5em 0;
}
/* for browsers in standards compliance mode */
td p { margin: 0; }
var { font-weight: bold; }
span.toggletreeclose {
background: url(minus.png) center left no-repeat;
padding-left: 20px;
}
span.toggletreeopen {
background: url(plus.png) center left no-repeat;
padding-left: 20px;
}
li.classtree ul { display: block; }
ul.classtreelist { list-style-type:none; }
ul.classtreelist li { padding-left: 0px; }
li.classtreeclosed ul { display: none; }
hr.footer-sep { margin-top: .667em; }
td.footer-doc { width: 36%; text-align: left; font-weight: bold; color: Black; }
td.footer-ver { width: 32%; text-align: center; color: Gray; }
td.footer-date { width: 32%; text-align: right; color: Gray; }

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,624 @@
<?xml version="1.0" encoding="UTF-8"?>
<fpdoc-descriptions>
<package name="datetimectrls">
<!--
====================================================================
DBDateTimePicker
====================================================================
-->
<!--
TODO:
Merge content from the wiki page.
Add links to inherited topics.
-->
<module name="DBDateTimePicker">
<short>
Implements a database-aware version of the date/time picker control.
</short>
<descr>
<p>
<file>DBDateTimePicker.pas</file> contains an implementation of the
database-aware date/time picker control. It contains the
<var>TDBDateTimePicker</var> type, descended from
<var>TCustomDateTimePicker</var>, which adds properties and methods
needed to read and write the date/time value for the control using a
DataSource, DataField, and an internal TFieldDataLink class instance.
</p>
<p>
<file>dbdatetimepicker.pas</file> is part of DateTimeCtrls package for Lazarus.
</p>
<p>
<b>Original Author:</b>
</p>
<p>
Zoran Vučenović, January and February 2010.
Зоран Вученовић, јануар и фебруар 2010.
</p>
<p>
<b>LICENSE</b>
</p>
<p>
Modified LGPL -- see the file COPYING.modifiedLGPL.
</p>
<p>
<b>NO WARRANTY</b>
</p>
<p>
There is no warranty whatsoever.
</p>
<p>
Original documentation is located on the Lazarus Wiki at:
</p>
<p>
<url href="https://wiki.freepascal.org/DateTimeCtrls_Package">
DateTimeCtrls Package
(https://wiki.freepascal.org/DateTimeCtrls_Package)
</url>
</p>
</descr>
<!-- used units -->
<element name="Classes"/>
<element name="SysUtils"/>
<element name="DateTimePicker"/>
<element name="db"/>
<element name="DBCtrls"/>
<element name="LMessages"/>
<element name="TDBDateTimePicker">
<short>
Implements a database-aware version of the TDateTimePicker control.
</short>
<descr/>
<seealso>
<link id="#datetimectrls.datetimepicker.TCustomDateTimePicker">TCustomDateTimePicker</link>
</seealso>
</element>
<!-- private -->
<element name="TDBDateTimePicker.FDataLink"/>
<element name="TDBDateTimePicker.FReadOnly"/>
<element name="TDBDateTimePicker.FDataChangeCount"/>
<element name="TDBDateTimePicker.FChangingCount"/>
<element name="TDBDateTimePicker.GetDataField"/>
<element name="TDBDateTimePicker.GetDataField.Result"/>
<element name="TDBDateTimePicker.GetDataSource"/>
<element name="TDBDateTimePicker.GetDataSource.Result"/>
<element name="TDBDateTimePicker.SetDataField"/>
<element name="TDBDateTimePicker.SetDataField.AValue"/>
<element name="TDBDateTimePicker.SetDataSource"/>
<element name="TDBDateTimePicker.SetDataSource.AValue"/>
<element name="TDBDateTimePicker.DataChange"/>
<element name="TDBDateTimePicker.DataChange.Sender"/>
<element name="TDBDateTimePicker.SetReadOnly"/>
<element name="TDBDateTimePicker.SetReadOnly.AValue"/>
<element name="TDBDateTimePicker.UpdateData"/>
<element name="TDBDateTimePicker.UpdateData.Sender"/>
<element name="TDBDateTimePicker.ActiveChange"/>
<element name="TDBDateTimePicker.ActiveChange.Sender"/>
<element name="TDBDateTimePicker.GetField"/>
<element name="TDBDateTimePicker.GetField.Result"/>
<element name="TDBDateTimePicker.CheckField"/>
<element name="TDBDateTimePicker.CMGetDataLink"/>
<element name="TDBDateTimePicker.CMGetDataLink.Message"/>
<!-- protected -->
<element name="TDBDateTimePicker.Change">
<short>
Performs actions needed when the value for the control has been changed.
</short>
<descr/>
<seealso>
<link id="#datetimectrls.datetimepicker.TCustomDateTimePicker.Change">TCustomDateTimePicker.Change</link>
<link id="#lcl.dbctrls.TFieldDataLink">TFieldDataLink</link>
</seealso>
</element>
<element name="TDBDateTimePicker.ConfirmChanges">
<short>
Validates and applies a user-specified date/time value for the control.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.UndoChanges">
<short>
Reverts changes to the date/time value in the control and its linked dataset.
</short>
<descr/>
<seealso/>
</element>
<!-- public -->
<element name="TDBDateTimePicker.Create">
<short>
Constructor for the class instance.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.Create.AOwner">
<short>
Owner of the class instance.
</short>
</element>
<element name="TDBDateTimePicker.Destroy">
<short>
Destructor for the class instance.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.Field">
<short>
Provides access to the TField instance for the date/time value in the linked
dataset.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.CalendarWrapperClass" link="#datetimectrls.datetimepicker.TCustomDateTimePicker.CalendarWrapperClass"/>
<element name="TDBDateTimePicker.DroppedDown" link="#datetimectrls.datetimepicker.TCustomDateTimePicker.DroppedDown"/>
<!-- published -->
<element name="TDBDateTimePicker.DataField">
<short>
String with the field name where the date/time value is stored in the linked
dataset.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.DataSource">
<short>
Provides access to the dataset for the date/time value.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.ReadOnly">
<short>
Indicates whether the data/time value can be modified.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.ArrowShape" link="#datetimectrls.datetimepicker.TCustomDateTimePicker.ArrowShape"/>
<element name="TDBDateTimePicker.ShowCheckBox" link="#datetimectrls.datetimepicker.TCustomDateTimePicker.ShowChechBox"/>
<element name="TDBDateTimePicker.Checked">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.CenturyFrom">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.DateDisplayOrder">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.MaxDate">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.MinDate">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.AutoSize">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.Font">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.ParentFont">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.TabOrder">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.TabStop">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.BorderStyle">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.BorderSpacing">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.Enabled">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.Color">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.ParentColor">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.DateSeparator">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.TrailingSeparator">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.TextForNullDate">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.LeadingZeros">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.ShowHint">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.ParentShowHint">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.Align">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.Alignment">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.Anchors">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.Constraints">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.Cursor">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.PopupMenu">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.Visible">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.NullInputAllowed">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.Kind">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.TimeSeparator">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.DecimalSeparator">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.TimeFormat">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.TimeDisplay">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.DateMode">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.UseDefaultSeparators">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.Cascade">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.AutoButtonSize">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.AutoAdvance">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.HideDateTimeParts">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.BiDiMode">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.ParentBiDiMode">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.MonthNames">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.ShowMonthNames">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.CalAlignment">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnChange">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnCheckBoxChange">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnDropDown">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnCloseUp">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnChangeBounds">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnClick">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnContextPopup">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnDblClick">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnEditingDone">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnEnter">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnExit">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnKeyDown">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnKeyPress">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnKeyUp">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnMouseDown">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnMouseEnter">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnMouseLeave">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnMouseMove">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnMouseUp">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnMouseWheel">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnMouseWheelDown">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnMouseWheelUp">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnResize">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnShowHint">
<short/>
<descr/>
<seealso/>
</element>
<element name="TDBDateTimePicker.OnUTF8KeyPress">
<short/>
<descr/>
<seealso/>
</element>
</module>
<!-- DBDateTimePicker -->
</package>
</fpdoc-descriptions>

View File

@ -0,0 +1,211 @@
<?xml version="1.0" encoding="UTF-8"?>
<fpdoc-descriptions>
<package name="datetimectrls">
<!--
====================================================================
lclcalwrapper
====================================================================
-->
<module name="lclcalwrapper">
<short>
Provides a default implementation of the TCalendarControlWrapper abstract
class for use in the LCL.
</short>
<descr>
<p>
By default, TDateTimePicker uses the LCL TCalendar control to represent its
drop-down calendar. But you can use another calendar control instead. In
order to use another calendar control, you should "wrap" that control with
a CalendarControlWrapper.
</p>
<p>
For use in TDateTimePicker, the calendar control must at least provide a way
to determine whether the coordinates are on a date. When the control is
clicked, we must decide if the date has just been chosen and respond by
closing the drop-down form and setting the date from the calendar to the
DateTimePicker control. For example, in the LCL TCalendar will respond when
the calendar is clicked on a date, but not when the user clicks in the title
area changing month or year. Then we let the user keep browsing the calendar.
</p>
<p>
When creating a new wrapper, there are abstract methods which need to be
overridden.
</p>
<p>
<file>lclcalwrapper.pas</file> is part of <file>DateTimeCtrls</file> package
for Lazarus.
</p>
<p>
<b>Original Author:</b>
</p>
<p>
Zoran Vučenović.
Зоран Вученовић.
</p>
<p>
<b>LICENSE</b>
</p>
<p>
Modified LGPL -- see the file COPYING.modifiedLGPL.
</p>
<p>
<b>NO WARRANTY</b>
</p>
<p>
There is no warranty whatsoever.
</p>
<p>
Original documentation is located on the Lazarus Wiki at:
</p>
<p>
<url href="https://wiki.freepascal.org/DateTimeCtrls_Package">
DateTimeCtrls Package
(https://wiki.freepascal.org/DateTimeCtrls_Package)
</url>
</p>
</descr>
<!-- used units -->
<element name="Classes"/>
<element name="Controls"/>
<element name="Calendar"/>
<element name="CalControlWrapper"/>
<element name="LMessages"/>
<element name="TLCLCalendarWrapper">
<short>
Provides a default implementation of the TCalendarControlWrapper abstract
class.
</short>
<descr/>
<seealso/>
</element>
<!-- private -->
<element name="TLCLCalendarWrapper.PrevCalendarWndProc"/>
<element name="TLCLCalendarWrapper.CanClose"/>
<element name="TLCLCalendarWrapper.LCLCalendarWrapperWndProc"/>
<element name="TLCLCalendarWrapper.LCLCalendarWrapperWndProc.TheMessage"/>
<!-- public -->
<element name="TLCLCalendarWrapper.GetCalendarControlClass">
<short>
Gets the TControlClass instance used to create new instances of the Calendar
displayed in a date/time picker control.
</short>
<descr/>
<seealso>
<link id="#datetimectrls.calcontrolwrapper.TCalendarControlWrapper.Create">TCalendarControlWrapper.Create</link>
</seealso>
</element>
<element name="TLCLCalendarWrapper.GetCalendarControlClass.Result">
<short>
Returns TCalendar in TLCLCalendarWrapper.
</short>
</element>
<element name="TLCLCalendarWrapper.SetDate">
<short>
Assigns the specified date to the DateTime property in the calendar control
for the wrapper.
</short>
<descr/>
<seealso/>
</element>
<element name="TLCLCalendarWrapper.SetDate.Date">
<short>
TDate value assigned to the calendar control for the wrapper.
</short>
</element>
<element name="TLCLCalendarWrapper.GetDate">
<short>
Gets the value for the DateTime property in the calendar control for the
wrapper.
</short>
<descr/>
<seealso/>
</element>
<element name="TLCLCalendarWrapper.GetDate.Result">
<short>
TDate value returned from the calendar control for the wrapper.
</short>
</element>
<element name="TLCLCalendarWrapper.AreCoordinatesOnDate">
<short>
Implements the abstract method used to verify that the specified coordinates
are on a valid date in the month view for the calendar control.
</short>
<descr/>
<seealso/>
</element>
<element name="TLCLCalendarWrapper.AreCoordinatesOnDate.Result">
<short>
<b>True</b> if the calendar can be closed, is using the month view for the
dialog, and the coordinates are on a date or unused area on the calendar
control.
</short>
</element>
<element name="TLCLCalendarWrapper.AreCoordinatesOnDate.X">
<short>
Horizontal coordinate for a click event on the control.
</short>
</element>
<element name="TLCLCalendarWrapper.AreCoordinatesOnDate.Y">
<short>
Vertical coordinate for a click event on the control.
</short>
</element>
<element name="TLCLCalendarWrapper.InMonthView">
<short>
Indicates whether the month view is active on the calendar control.
</short>
<descr>
<p>
The return value is <b>True</b> if the TCalendar calendar instance (from
GetCalendarControl) is displaying the month view on the control
(GetCalendarView is set to cvMonth).
</p>
</descr>
<seealso/>
</element>
<element name="TLCLCalendarWrapper.InMonthView.Result">
<short>
<b>True</b> when the view for the calendar control is set to cvMonth.
</short>
</element>
<element name="TLCLCalendarWrapper.Create">
<short>
Constructor for the class instance.
</short>
<descr>
<p>
Create is the overridden constructor for the class instance, and calls the
inherited method on entry. It sets the values for private members in the
class instance, and stores the private LCLCalendarWrapperWndProc method as the
window processing loop for the calendar control.
</p>
</descr>
<seealso/>
</element>
<element name="TLCLCalendarWrapper.Destroy">
<short>
Destructor for the class instance.
</short>
<descr>
<p>
Restores a previous window processing loop for the calendar control, and frees
the class instance by calling the inherited method.
</p>
</descr>
<seealso/>
</element>
</module>
<!-- lclcalwrapper -->
</package>
</fpdoc-descriptions>

View File

@ -0,0 +1,18 @@
#!/bin/bash
echo ""
echo "Create archive for DateTimeCtrls html documentation"
echo ""
# convert to unix line endings expected by git
cd datetimectrls
dos2unix *.{html,css}
dos2unix **/*.{html}
cd ..
# create an archive for the generated html content
dt=`date +"%Y-%m-%d"`
7z a -t7z -r -mx9 docs-html-datetimectrls-$dt.7z ./datetimectrls/
# move .7z file to another directory for permanent storage
# the .7z file is removed in clean-files.sh

View File

@ -0,0 +1,78 @@
#!/bin/bash
#==========================================================================
# Builds CHM and HTML help files for the DateTimeCtrls package using fpdoc.
# Requires chm and xct files for rtl, fcl, lcl, and lazutils in the
# Lazarus docs/chm directory.
# fpdoc will fail if they are not present.
#==========================================================================
#==========================================================================
# SET THE CORRECT PATHS FOR YOUR SYSTEM
# docdir = path to lazarus documentation directory
# fpcdir = path to fpdoc executable
# gitpath = path to git repository for lazarus
#==========================================================================
# lazarus documentation directory
docdir="../../../docs"
# fpdoc executable directory
fpcdir="../../../fpc/3.2.2/bin/x86_64-win64"
#fpcdir="../../../../fpc331/fpc/bin/x86_64-win64"
# lazarus repository directory
#gitpath="../../../usr/work/git-lazarus"
# version number is hard-coded because main-2_3 tag is not the format needed
verno="2.3.0"
dt=`date +"%Y-%m-%d"`
# get only the commit hash
#commit=`git -C $gitpath describe --all --long | cut -d "-" -f 3 | cut -b "2-"`
# chm and html footer files are the same... for now
# chm footer should have a link to the online HTML
cat <<EOT > ./datetimectrls-chm-footer.xml
<hr class="footer-sep"/>
<table class="footer">
<tr>
<td class="footer-doc">Date/Time Controls Package (DateTimeCtrls)</td>
<td class="footer-ver">Version $verno</td>
<td class="footer-date">Generated $dt</td>
</tr>
</table>
EOT
cat <<EOT > ./datetimectrls-html-footer.xml
<hr class="footer-sep"/>
<table class="footer">
<tr>
<td class="footer-doc">Date/Time Controls Package (DateTimeCtrls)</td>
<td class="footer-ver">Version $verno</td>
<td class="footer-date">Generated $dt</td>
</tr>
</table>
EOT
echo -e "\n\e[7m DateTimeCtrls package \e[0m";
# generate chm format with footers and chm title
# imports done manually to set the correct prefixs for the chm format
# output to current directory
echo "Generating CHM help..."
chmTitle="Date/Time Controls (DateTimeCtrls)"
$fpcdir/fpdoc --project=datetimectrls-project.xml --format=chm --chm-title="$chmTitle" --footer="datetimectrls-chm-footer.xml" --import="$docdir/chm/rtl.xct,ms-its:rtl.chm::/" --import="$docdir/chm/fcl.xct,ms-its:fcl.chm::/" --import="$docdir/chm/lcl.xct,ms-its:lcl.chm::/" --import="$docdir/chm/lazutils.xct,ms-its:lazutils.chm::/" 2>&1 | tee ./build_chm.log
# generate html format with footers
# imports done manually to set the correct prefixs for the html format
# html written to the datetimectrls sub-directory
echo "Generating HTML help..."
$fpcdir/fpdoc --project=datetimectrls-project.xml --format=html --footer="datetimectrls-html-footer.xml" --import="$docdir/chm/rtl.xct,../rtl/" --import="$docdir/chm/fcl.xct,../fcl/" --import="$docdir/chm/lcl.xct,../lcl/" --import="$docdir/chm/lazutils.xct,../lazutils/" --output=datetimectrls 2>&1 | tee ./build_html.log
# copy generated chm, xct to lazarus docs directory
cp -v datetimectrls.{chm,xct} $docdir/chm/
# copy css file to output directory for generated html content
cp -v datetimectrls.css datetimectrls/
# run make-archive.sh if needed
# run clean-files.sh if needed