我在 Delphi Firemonkey中对FMX.Calendar.Style进行子类化,以便为TCalendar组件添加更多的功能。我想添加“拖动选择”多天(一天范围)。我有一个粗略的工作原理证明。我在另一个单元中对FMX.Calendar.Style中的TStyledCalendar进行子类化。
为了提取选定的日期,我需要强制转换为TDayItem。问题是类型TDayItem在实现部分中定义,因此无法在其他单元中使用新类访问。
有办法访问它吗?
unit FMX.Calendar.Style;
interface
{$SCOPEDENUMS ON}
uses
System.Classes, .., ..
type
{ TStyledCalendar }
TStyledCalendar = class(TStyledPresentation)
public const
CountOfVisibleDays = 6 * 7;
..
..
..
end;
implementation
uses
System.SysUtils, .. ..
type
TDayItem = class(TListBoxItem)
private
FDate: TDateTime;
public
property Date: TDateTime read FDate write FDate;
end;
..
..
1条答案
按热度按时间w8f9ii691#
不幸的是,一个单元根本无法访问另一个单元的
implementation
节中声明的类型(或变量,或常量)。只有在一个单元的interface
节中声明的项才能被其他单元访问。一个单元的implementation
节只能被它所属的单元访问。在这种情况下,您唯一能做的就是将
TDayItem
的声明复制到您自己的单元中,然后根据需要将ListBox项类型转换为该类型。然后检查FMX的TDayItem
声明,以了解每个新版本/补丁中的更改,以便相应地更新您的代码。