Undeclared identifier: 'YearOf'问题

guoli12 2012-08-01 10:23:45
程序如下:
unit MainForm;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Mask, StdCtrls;

type
TForm1 = class(TForm)
lblName: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
edtName: TEdit;
edtScore1: TEdit;
edtScore2: TEdit;
meIDCard: TMaskEdit;
mePhone: TMaskEdit;
btnGetInfo: TButton;
lblBirthday: TLabel;
lblSex: TLabel;
lblAge: TLabel;
lblScore: TLabel;
procedure edtScore1KeyPress(Sender: TObject; var Key: Char);
procedure edtScore2KeyPress(Sender: TObject; var Key: Char);
procedure btnGetInfoClick(Sender: TObject);
private
{ Private declarations }
function ExtractBirthday(const IDCard:string):TDate;
function ExtractSex(const IDCard:string):Boolean;
function CalcScore(const S1,S2:string):Real;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.ExtractBirthday (const IDCard:string):TDate;
var
Str:string;
Len:Integer;
begin
Str:=Trim(IDCard);
Len:=Length(IDCard);
case Len of
15:Str:=Copy(Str,7,2)+'-'+Copy(Str,9,2)+'-'+Copy(Str,11,2);
18:Str:=Copy(Str,7,4)+'-'+Copy(Str,11,2)+'-'+Copy(Str,13,2);
end;
Result:=StrToDate(Str);
end;
function TForm1.ExtractSex (const IDCard:string):Boolean;
var
Str:string;
Len:Integer;
begin
Result:=False;
Str:=Trim(IDCard);
Len:=Length(Str);
case Len of
15:Result:=StrToInt(Str[15]) mod 2<>0;
18:Result:=StrToInt(Str[17]) mod 2<>0;
end;
end;
function TForm1.CalcScore (const S1,S2:string):Real;
begin
Result:=StrToInt(S1)*0.6+StrToInt(S2)*0.4;
end;
procedure TForm1.edtScore1KeyPress(Sender: TObject; var Key: Char);
begin
if(key<#8)or((key>#8) and (key<#46)) or ((key>#46)and(key<#48)) or (key>#57) then
Key:=#0;
end;

procedure TForm1.edtScore2KeyPress(Sender: TObject; var Key: Char);
begin
if(key<#8)or((key>#8) and (key<#46)) or ((key>#46)and(key<#48)) or (key>#57) then
Key:=#0;
end;

procedure TForm1.btnGetInfoClick(Sender: TObject);
var
Birthday:TDate;
begin
Birthday:=ExtractBirthday(meIDCard.Text);
if Length(Trim(meIDCard.Text))>0 then begin
lblBirthday.Caption:=Format('出生日期:%d年%d月%d日',[YearOf(Birthday),MonthOf(Birthday),DayOf(Birthday)]);
if ExtractSex(meIDCard.Text) then
lblSex.Caption:='性别:男'
else
lblSex.Caption:='性别:女';
end;
lblAge.Caption:='年龄:'+IntToStr(YearOf(Now)-YearOf(Birthday));
lblScore.Caption:='考试成绩:'+Format('%5.1f',[CalcScore(edtScore1.Text,edtScore2.Text)])'
end;

end.
运行后提示错误为:
[Error] MainForm.pas(93): Undeclared identifier: 'YearOf'
[Error] MainForm.pas(93): Undeclared identifier: 'MonthOf'
[Error] MainForm.pas(93): Undeclared identifier: 'DayOf'
[Error] MainForm.pas(100): Unterminated string
[Fatal Error] Project1.dpr(5): Could not compile used unit '..\chenyue\Exa04-14\MainForm.pas'
...全文
112 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoli12 2012-08-01
  • 打赏
  • 举报
回复
我太不小心了 谢谢各位帮忙
kaikai_kk 2012-08-01
  • 打赏
  • 举报
回复
真神了。。。。回答一样
kaikai_kk 2012-08-01
  • 打赏
  • 举报
回复
第100行,把后面的引号去掉

lblScore.Caption:='考试成绩:'+Format('%5.1f',[CalcScore(edtScore1.Text,edtScore2.Text)])'


s11ss 2012-08-01
  • 打赏
  • 举报
回复
lblScore.Caption:='考试成绩:'+Format('%5.1f',[CalcScore(edtScore1.Text,edtScore2.Text)])'

把最后的单引号去掉!
guoli12 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
uses DateUtils;
[/Quote]
这样改了以后还是有一个错误:
[Error] MainForm.pas(100): Unterminated string
[Fatal Error] Project1.dpr(5): Could not compile used unit '..\chenyue\Exa04-14\MainForm.pas'
kaikai_kk 2012-08-01
  • 打赏
  • 举报
回复
引用单元 uses DateUtils
s11ss 2012-08-01
  • 打赏
  • 举报
回复
uses DateUtils;
告知:需要学习YOLOv4进行TT100K数据集上中国交通标志识别的学员请前往(1) Ubuntu系统《YOLOv4目标检测实战:中国交通标志识别》课程链接:https://edu.csdn.net/course/detail/29362(2)《Windows版YOLOv4目标检测实战:中国交通标志识别》课程链接:https://edu.csdn.net/course/detail/29363在无人驾驶中,交通标志识别是一项重要的任务。本课程中的项目以美国交通标志数据集LISA为训练对象,采用YOLOv3目标检测方法实现实时交通标志识别。具体项目过程包括包括:安装Darknet、下载LISA交通标志数据集、数据集格式转换、修改配置文件、训练LISA数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。YOLOv3基于深度学习,可以实时地进行端到端的目标检测,以速度快见长。本课程将手把手地教大家使用YOLOv3实现交通标志的多目标检测。本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入学习和探究。除本课程《YOLOv3目标检测实战:交通标志识别》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括:《YOLOv3目标检测实战:训练自己的数据集》《YOLOv3目标检测:原理与源码解析》《YOLOv3目标检测:网络模型改进方法》另一门课程《YOLOv3目标检测实战:训练自己的数据集》主要是介绍如何训练自己标注的数据集。而本课程的区别主要在于学习对已标注数据集的格式转换,即把LISA数据集从csv格式转换成YOLOv3所需要的PASCAL VOC格式和YOLO格式。本课程提供数据集格式转换的Python代码。请大家关注以上课程,并选择学习。下图是使用YOLOv3进行交通标志识别的测试结果

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧