Unsatisfied forward or external declaration 错误分析

本文详细解析了一个在使用Delphi进行程序开发时遇到的常见错误 Unsatisfiedforwardorexternaldeclaration,并提供了解决方案。通过将过程声明中的类名全称加入,问题得以解决。
部署运行你感兴趣的模型镜像
今天在FDS建模程序编写时自定义了一组鼠标响应事件,结果总是提示“Unsatisfied forward or external declaration”错误,最终发现是如下原因造成的:
类声明部分定义的procedure PanelClick(Sender:Tobjcet),在实现部分需要有类名的全称!

 

 

复制代码
1 type
2 TForm1 =class(TForm)
3   ...
4 procedure PanelClick(Sender:Tobjcet); //过程声明
5
6 private
7 { Private declarations }
8 public
9 { Public declarations }
10 end;
11
12  var
13 Form1: TForm1;
14
15  implementation
16
17 {$R *.dfm}
18 procedure PanelClick(Sender:Tobjcet);  //Error,出错了!
19 ...
20
21
22
23 procedure TForm1.PanelClick(Sender:Tobjcet);  //只需加个TForm1就OK了呵呵!
24 ...
25
26

转载于:https://www.cnblogs.com/anbylau2130/archive/2012/12/06/Delphi%e4%b9%8b%e6%97%85.html

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

[dcc32 Error] uHIDComm.pas(74): E2003 Undeclared identifier: 'HDEVINFO' [dcc32 Error] uHIDComm.pas(75): E2005 'HDEVINFO' is not a type identifier [dcc32 Error] uHIDComm.pas(75): E2003 Undeclared identifier: 'PSPDevInfoData' [dcc32 Error] uHIDComm.pas(75): E2003 Undeclared identifier: 'SP_DEVICE_INTERFACE_DATA' [dcc32 Error] uHIDComm.pas(76): E2005 'HDEVINFO' is not a type identifier [dcc32 Error] uHIDComm.pas(76): E2003 Undeclared identifier: 'PSPDeviceInterfaceData' [dcc32 Error] uHIDComm.pas(76): E2003 Undeclared identifier: 'PSPDeviceInterfaceDetailData' [dcc32 Error] uHIDComm.pas(76): E2005 'PSPDevInfoData' is not a type identifier [dcc32 Error] uHIDComm.pas(77): E2005 'HDEVINFO' is not a type identifier [dcc32 Error] uHIDComm.pas(118): E2007 Constant or type identifier expected [dcc32 Error] uHIDComm.pas(119): E2007 Constant or type identifier expected [dcc32 Error] uHIDComm.pas(122): E2007 Constant or type identifier expected [dcc32 Warning] uHIDComm.pas(130): W1021 Comparison always evaluates to False [dcc32 Error] uHIDComm.pas(138): E2066 Missing operator or semicolon [dcc32 Error] uHIDComm.pas(143): E2008 Incompatible types [dcc32 Error] uHIDComm.pas(145): E2066 Missing operator or semicolon [dcc32 Error] uHIDComm.pas(145): E2003 Undeclared identifier: 'TSPDeviceInterfaceDetailData' [dcc32 Error] uHIDComm.pas(146): E2033 Types of actual and formal var parameters must be identical [dcc32 Error] uHIDComm.pas(148): E2035 Not enough actual parameters [dcc32 Error] uHIDComm.pas(153): E2066 Missing operator or semicolon [dcc32 Error] uHIDComm.pas(157): E2066 Missing operator or semicolon [dcc32 Error] uHIDComm.pas(170): E2125 EXCEPT or FINALLY expected [dcc32 Error] uHIDComm.pas(171): E2029 'END' expected but 'FINALLY' found [dcc32 Error] uHIDComm.pas(173): E2125 EXCEPT or FINALLY expected [dcc32 Error] uHIDComm.pas(177): E2029 Declaration expected but identifier 'DoError' found [dcc32 Error] uHIDComm.pas(180): E2029 '.' expected but ';' found [dcc32 Warning] uHIDComm.pas(181): W1011 Text after final 'END.' - ignored by compiler [dcc32 Error] uHIDComm.pas(37): E2065 Unsatisfied forward or external declaration: 'THIDComm.StartReading' [dcc32 Error] uHIDComm.pas(38): E2065 Unsatisfied forward or external declaration: 'THIDComm.StopReading' [dcc32 Error] uHIDComm.pas(43): E2065 Unsatisfied forward or external declaration: 'THIDComm.CloseDevice' [dcc32 Error] uHIDComm.pas(44): E2065 Unsatisfied forward or external declaration: 'THIDComm.SendReport' [dcc32 Error] uHIDComm.pas(66): E2065 Unsatisfied forward or external declaration: 'TReadThread.HandleData' [dcc32 Error] uHIDComm.pas(68): E2065 Unsatisfied forward or external declaration: 'TReadThread.Execute' [dcc32 Error] uHIDComm.pas(70): E2065 Unsatisfied forward or external declaration: 'TReadThread.Create' [dcc32 Hint] uHIDComm.pas(33): H2219 Private symbol 'FReadThread' declared but never used [dcc32 Hint] uHIDComm.pas(64): H2219 Private symbol 'FOwner' declared but never used [dcc32 Hint] uHIDComm.pas(65): H2219 Private symbol 'FReportBuffer' declared but never used [dcc32 Hint] uHIDComm.pas(66): H2219 Private symbol 'HandleData' declared but never used
最新发布
09-30
[dcc32 Error] Viscell.MedicalDevice.pas(86): E2003 Undeclared identifier: 'HDEVINFO' [dcc32 Error] Viscell.MedicalDevice.pas(87): E2003 Undeclared identifier: 'TSPDevInfoData' [dcc32 Error] Viscell.MedicalDevice.pas(88): E2003 Undeclared identifier: 'TSPDeviceInterfaceData' [dcc32 Error] Viscell.MedicalDevice.pas(89): E2003 Undeclared identifier: 'PSPDeviceInterfaceDetailData' [dcc32 Error] Viscell.MedicalDevice.pas(101): E2003 Undeclared identifier: 'SetupDiGetClassDevs' [dcc32 Error] Viscell.MedicalDevice.pas(101): E2003 Undeclared identifier: 'DIGCF_DEVICEINTERFACE' [dcc32 Error] Viscell.MedicalDevice.pas(101): E2003 Undeclared identifier: 'DIGCF_PRESENT' [dcc32 Warning] Viscell.MedicalDevice.pas(102): W1021 Comparison always evaluates to False [dcc32 Error] Viscell.MedicalDevice.pas(106): E2066 Missing operator or semicolon [dcc32 Error] Viscell.MedicalDevice.pas(107): E2066 Missing operator or semicolon [dcc32 Error] Viscell.MedicalDevice.pas(109): E2003 Undeclared identifier: 'SetupDiEnumDeviceInterfaces' [dcc32 Error] Viscell.MedicalDevice.pas(112): E2003 Undeclared identifier: 'SetupDiGetDeviceInterfaceDetail' [dcc32 Error] Viscell.MedicalDevice.pas(113): E2008 Incompatible types [dcc32 Error] Viscell.MedicalDevice.pas(115): E2017 Pointer type required [dcc32 Error] Viscell.MedicalDevice.pas(115): E2003 Undeclared identifier: 'TSPDeviceInterfaceDetailData' [dcc32 Error] Viscell.MedicalDevice.pas(120): E2017 Pointer type required [dcc32 Error] Viscell.MedicalDevice.pas(120): E2029 'END' expected but ',' found [dcc32 Error] Viscell.MedicalDevice.pas(125): E2066 Missing operator or semicolon [dcc32 Error] Viscell.MedicalDevice.pas(141): E2125 EXCEPT or FINALLY expected [dcc32 Error] Viscell.MedicalDevice.pas(142): E2029 'END' expected but 'FINALLY' found [dcc32 Error] Viscell.MedicalDevice.pas(144): E2125 EXCEPT or FINALLY expected [dcc32 Error] Viscell.MedicalDevice.pas(147): E2029 Declaration expected but 'FINALLY' found [dcc32 Error] Viscell.MedicalDevice.pas(149): E2029 '.' expected but ';' found [dcc32 Warning] Viscell.MedicalDevice.pas(150): W1011 Text after final 'END.' - ignored by compiler [dcc32 Error] Viscell.MedicalDevice.pas(25): E2065 Unsatisfied forward or external declaration: 'TViscellMedicalDevice.StartReading' [dcc32 Error] Viscell.MedicalDevice.pas(26): E2065 Unsatisfied forward or external declaration: 'TViscellMedicalDevice.StopReading' [dcc32 Error] Viscell.MedicalDevice.pas(28): E2065 Unsatisfied forward or external declaration: 'TViscellMedicalDevice.DoDeviceConnected' [dcc32 Error] Viscell.MedicalDevice.pas(29): E2065 Unsatisfied forward or external declaration: 'TViscellMedicalDevice.DoDeviceDisconnected' [dcc32 Error] Viscell.MedicalDevice.pas(30): E2065 Unsatisfied forward or external declaration: 'TViscellMedicalDevice.DoDataReceived' [dcc32 Error] Viscell.MedicalDevice.pas(35): E2065 Unsatisfied forward or external declaration: 'TViscellMedicalDevice.Connect' [dcc32 Error] Viscell.MedicalDevice.pas(36): E2065 Unsatisfied forward or external declaration: 'TViscellMedicalDevice.Disconnect' [dcc32 Error] Viscell.MedicalDevice.pas(37): E2065 Unsatisfied forward or external declaration: 'TViscellMedicalDevice.SendReport' [dcc32 Hint] Viscell.MedicalDevice.pas(16): H2219 Private symbol 'FReadThread' declared but never used [dcc32 Hint] Viscell.MedicalDevice.pas(17): H2219 Private symbol 'FStopReading' declared but never used [dcc32 Hint] Viscell.MedicalDevice.pas(23): H2219 Private symbol 'SetDeviceConnected' declared but never used [dcc32 Hint] Viscell.MedicalDevice.pas(24): H2219 Private symbol 'OpenDevice' declared but never used [dcc32 Hint] Viscell.MedicalDevice.pas(25): H2219 Private symbol 'StartReading' declared but never used [dcc32 Hint] Viscell.MedicalDevice.pas(26): H2219 Private symbol 'StopReading' declared but never used
09-22
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值