📄 basic.pas
字号:
FItems[tgYi].FCaption:='乙';
FItems[tgYi].FFangWei:=fwDong;
FItems[tgYi].FYinYnag:=yyYin;
FItems[tgYi].FWuXing:=FWuXingLian.Items[wxMu];
FItems[tgYi].FDiGong:=dzChen;
FItems[tgBing]:=TTianGanYuansu.Create;
FItems[tgBing].FOrder:=tgBing;
FItems[tgBing].FCaption:='丙';
FItems[tgBing].FFangWei:=fwNan;
FItems[tgBing].FYinYnag:=yyYang;
FItems[tgBing].FWuXing:=FWuXingLian.Items[wxHuo];
FItems[tgBing].FDiGong:=dzSi;
FItems[tgDing]:=TTianGanYuansu.Create;
FItems[tgDing].FOrder:=tgDing;
FItems[tgDing].FCaption:='丁';
FItems[tgDing].FFangWei:=fwNan;
FItems[tgDing].FYinYnag:=yyYin;
FItems[tgDing].FWuXing:=FWuXingLian.Items[wxHuo];
FItems[tgDing].FDiGong:=dzWei;
FItems[tgWu]:=TTianGanYuansu.Create;
FItems[tgWu].FOrder:=tgWu;
FItems[tgWu].FCaption:='戊';
FItems[tgWu].FFangWei:=fwNan;
FItems[tgWu].FYinYnag:=yyYang;
FItems[tgWu].FWuXing:=FWuXingLian.Items[wxTu];
FItems[tgWu].FDiGong:=dzSi;
FItems[tgJi]:=TTianGanYuansu.Create;
FItems[tgJi].FOrder:=tgJi;
FItems[tgJi].FCaption:='己';
FItems[tgJi].FFangWei:=fwNan;
FItems[tgJi].FYinYnag:=yyYin;
FItems[tgJi].FWuXing:=FWuXingLian.Items[wxTu];
FItems[tgJi].FDiGong:=dzWei;
FItems[tgGeng]:=TTianGanYuansu.Create;
FItems[tgGeng].FOrder:=tgGeng;
FItems[tgGeng].FCaption:='庚';
FItems[tgGeng].FFangWei:=fwXi;
FItems[tgGeng].FYinYnag:=yyYang;
FItems[tgGeng].FWuXing:=FWuXingLian.Items[wxJin];
FItems[tgGeng].FDiGong:=dzShen;
FItems[tgXin]:=TTianGanYuansu.Create;
FItems[tgXin].FOrder:=tgXin;
FItems[tgXin].FCaption:='辛';
FItems[tgXin].FFangWei:=fwXi;
FItems[tgXin].FYinYnag:=yyYin;
FItems[tgXin].FWuXing:=FWuXingLian.Items[wxJin];
FItems[tgXin].FDiGong:=dzXu;
FItems[tgRen]:=TTianGanYuansu.Create;
FItems[tgRen].FOrder:=tgRen;
FItems[tgRen].FCaption:='壬';
FItems[tgRen].FFangWei:=fwBei;
FItems[tgRen].FYinYnag:=yyYang;
FItems[tgRen].FWuXing:=FWuXingLian.Items[wxShui];
FItems[tgRen].FDiGong:=dzHai;
FItems[tgGui]:=TTianGanYuansu.Create;
FItems[tgGui].FOrder:=tgGui;
FItems[tgGui].FCaption:='癸';
FItems[tgGui].FFangWei:=fwBei;
FItems[tgGui].FYinYnag:=yyYin;
FItems[tgGui].FWuXing:=FWuXingLian.Items[wxShui];
FItems[tgGui].FDiGong:=dzChou;
FIndex:=Low(TTianGanShunXu);
end;
destructor TTianGanLian.Destroy;
var
tgI:TTianGanShunXu;
begin
for tgI:=tgJia to tgGui do//逐个释放天干元素
begin
FItems[tgI].Free;
end;
inherited;
end;
function TTianGanLian.First: TTianGanShunXu;
begin
FIndex:=Low(TTianGanShunXu);
Result:=FIndex;
end;
function TTianGanLian.Get(TheIndex: TTianGanShunXU): TTianGanYuanSu;
begin
FIndex:=TheIndex;
Result:=FItems[FIndex];
end;
function TTianGanLian.GetCurrentItem: TTianGanYuanSu;
begin
Result:=FItems[FIndex];
end;
function TTianGanLian.Last: TTianGanShunXU;
begin
FIndex:=High(TTianGanShunXu);
Result:=FIndex;
end;
procedure TTianGanLian.SetIndex(Value: TTianGanShunXU);
begin
if (Value<=Low(TTianGanShunXu)) or (Value>High(TTianGanShunXu)) then
Exit//超过范围
else
FIndex:=TTianGanShunXu(Value);
end;
function TTianGanLian.Step(StepLen: Integer): TTianGanShunXU;
begin
I:=Integer(FIndex);
I:=(I+StepLen) mod 10;//取 5 的余数
if I<0 then I:=10+I;//变补码
FIndex:=TTianGanShunXu(I);
Result:=FIndex;
end;
{ /TTianGanLian }//天干链
{ TDiZhiLian }//地支链
constructor TDiZhiLian.Create;
begin
FWuXingLian:=TWuXingLian.Create;//内置五行链
FItems[dzZi]:=TDiZhiYuanSu.Create;
FItems[dzZi].FOrder:=dzZi;
FItems[dzZi].FCaption:='子';
FItems[dzZi].FFangWei:=fwBei;
FItems[dzZi].FYinYnag:=yyYang;
FItems[dzZi].FWuXing:=FWuXingLian.Items[wxShui];
FItems[dzZi].FHuoLi:=hlZhong;
FItems[dzChou]:=TDiZhiYuanSu.Create;
FItems[dzChou].FOrder:=dzChou;
FItems[dzChou].FCaption:='丑';
FItems[dzChou].FFangWei:=fwBei;
FItems[dzChou].FYinYnag:=yyYin;
FItems[dzChou].FWuXing:=FWuXingLian.Items[wxTu];
FItems[dzChou].FHuoLi:=hlJi;
FItems[dzYin]:=TDiZhiYuanSu.Create;
FItems[dzYin].FOrder:=dzYin;
FItems[dzYin].FCaption:='寅';
FItems[dzYin].FFangWei:=fwDong;
FItems[dzYin].FYinYnag:=yyYang;
FItems[dzYin].FWuXing:=FWuXingLian.Items[wxMu];
FItems[dzYin].FHuoLi:=hlMeng;
FItems[dzMao]:=TDiZhiYuanSu.Create;
FItems[dzMao].FOrder:=dzMao;
FItems[dzMao].FCaption:='卯';
FItems[dzMao].FFangWei:=fwDong;
FItems[dzMao].FYinYnag:=yyYin;
FItems[dzMao].FWuXing:=FWuXingLian.Items[wxMu];
FItems[dzMao].FHuoLi:=hlZhong;
FItems[dzChen]:=TDiZhiYuanSu.Create;
FItems[dzChen].FOrder:=dzChen;
FItems[dzChen].FCaption:='辰';
FItems[dzChen].FFangWei:=fwDong;
FItems[dzChen].FYinYnag:=yyYang;
FItems[dzChen].FWuXing:=FWuXingLian.Items[wxTu];
FItems[dzChen].FHuoLi:=hlJi;
FItems[dzSi]:=TDiZhiYuanSu.Create;
FItems[dzSi].FOrder:=dzSi;
FItems[dzSi].FCaption:='巳';
FItems[dzSi].FFangWei:=fwNan;
FItems[dzSi].FYinYnag:=yyYin;
FItems[dzSi].FWuXing:=FWuXingLian.Items[wxHuo];
FItems[dzSi].FHuoLi:=hlMeng;
FItems[dzWu]:=TDiZhiYuanSu.Create;
FItems[dzWu].FOrder:=dzWu;
FItems[dzWu].FCaption:='午';
FItems[dzWu].FFangWei:=fwNan;
FItems[dzWu].FYinYnag:=yyYang;
FItems[dzWu].FWuXing:=FWuXingLian.Items[wxHuo];
FItems[dzWu].FHuoLi:=hlZhong;
FItems[dzWei]:=TDiZhiYuanSu.Create;
FItems[dzWei].FOrder:=dzWei;
FItems[dzWei].FCaption:='未';
FItems[dzWei].FFangWei:=fwNan;
FItems[dzWei].FYinYnag:=yyYin;
FItems[dzWei].FWuXing:=FWuXingLian.Items[wxTu];
FItems[dzWei].FHuoLi:=hlJi;
FItems[dzShen]:=TDiZhiYuanSu.Create;
FItems[dzShen].FOrder:=dzShen;
FItems[dzShen].FCaption:='申';
FItems[dzShen].FFangWei:=fwXi;
FItems[dzShen].FYinYnag:=yyYang;
FItems[dzShen].FWuXing:=FWuXingLian.Items[wxJin];
FItems[dzShen].FHuoLi:=hlMeng;
FItems[dzYou]:=TDiZhiYuanSu.Create;
FItems[dzYou].FOrder:=dzYou;
FItems[dzYou].FCaption:='酉';
FItems[dzYou].FFangWei:=fwXi;
FItems[dzYou].FYinYnag:=yyYin;
FItems[dzYou].FWuXing:=FWuXingLian.Items[wxJin];
FItems[dzYou].FHuoLi:=hlZhong;
FItems[dzXu]:=TDiZhiYuanSu.Create;
FItems[dzXu].FOrder:=dzXu;
FItems[dzXu].FCaption:='戌';
FItems[dzXu].FFangWei:=fwXi;
FItems[dzXu].FYinYnag:=yyYang;
FItems[dzXu].FWuXing:=FWuXingLian.Items[wxTu];
FItems[dzXu].FHuoLi:=hlJi;
FItems[dzHai]:=TDiZhiYuanSu.Create;
FItems[dzHai].FOrder:=dzHai;
FItems[dzHai].FCaption:='亥';
FItems[dzHai].FFangWei:=fwBei;
FItems[dzHai].FYinYnag:=yyYin;
FItems[dzHai].FWuXing:=FWuXingLian.Items[wxShui];
FItems[dzHai].FHuoLi:=hlMeng;
FIndex:=Low(TDiZhiShunXu);
end;
destructor TDiZhiLian.Destroy;
var
dzI:TDiZhiShunXu;
begin
for dzI:=Low(TDiZhiShunXu) to High(TDiZhiShunXu) do//逐个释放地支元素
begin
FItems[dzI].Free;
end;
inherited;
end;
function TDiZhiLian.First: TDiZhiShunXU;
begin
FIndex:=Low(TDiZhiShunXu);
Result:=FIndex;
end;
function TDiZhiLian.Get(TheIndex: TDiZhiShunXu): TDiZhiYuanSu;
begin
FIndex:=TheIndex;
Result:=FItems[FIndex];
end;
function TDiZhiLian.GetCurrentItem: TDiZhiYuanSu;
begin
Result:=FItems[FIndex];
end;
function TDiZhiLian.Last: TDiZhiShunXu;
begin
FIndex:=High(TDiZhiShunXu);
Result:=FIndex;
end;
procedure TDiZhiLian.SetIndex(Value: TDiZhiShunXu);
begin
if (Value<=Low(TDiZhiShunXu)) or (Value>High(TDiZhiShunXu)) then
Exit//超过范围
else
FIndex:=TDiZhiShunXu(Value);
end;
function TDiZhiLian.Step(StepLen: Integer): TDiZhiShunXU;
begin
I:=Integer(FIndex);
I:=(I+StepLen) mod 12;//取 10 的余数
if I<0 then I:=12+I;//变补码
FIndex:=TDiZhiShunXu(I);
Result:=FIndex;
end;
{ /TDiZhiLian }//地支链
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -