delphi程序问题:Class TComPort not found. lgnore the error and continue?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi程序问题:Class TComPort not found. lgnore the error and continue?相关的知识,希望对你有一定的参考价值。

打开delphi的.dpr文件出现下面两个错误,寻求原因及解决办法!
多谢啦
Class TdsStatusBar not found. lgnore the error and continue?
NOTE:lgnoring the error may cause components to be deleted or property values to be lost.
Class TComPort not found. lgnore the error and continue?
NOTE:lgnoring the error may cause components to be deleted or property values to be lost.
dfsstatusbar控件包怎么安装到delphi7里面啊

dfsstatusbar控件包包含下列文件:
DFSKbMon.dpr///dfs.inc///DFSKbMon.dll///DFSStatusBar.txt///DFSStatusBarReg.pas///DFSStatusBar.pas///DFSKb.pas///DFSAbout.pas

主要是需要DFSStatusBar控件,我的操作是:component→install component→选的DFSStatusBar.pas→OK→install

然后就报错了:File not found :'DsgnIntf.dcu'

我在网上搜了,好像是delphi5以后的版本里没有这个东西了,应该怎么办啊?多谢

如果你那有短信收发的程序给我一个吧 这样就最好啦,我用的TC35I模块,用delphi写串口来收发短信

您好,

出现这个错误是由于多个类(这里是控件)丢失所致,我给您翻译一下错误信息吧:

Class TComPort not found. lgnore the error and continue?
无法找到类TComPort,忽略这个错误并继续?
Class TdsStatusBar not found. lgnore the error and continue?
无法找到类TdsStatusBar,忽略这个错误并继续?
NOTE:lgnoring the error may cause components to be deleted or property values to be lost.
注意:忽略这个错误可能导致组件被删除或属性值丢失。
Class TComPort not found. lgnore the error and continue?
无法找到类TComPort,忽略这个错误并继续?
NOTE:lgnoring the error may cause components to be deleted or property values to be lost.
注意:忽略这个错误可能导致组件被删除或属性值丢失。

因为您说这个程序是可以下载的,我想可能他的源代码中使用了一些自定义控件,或者您的Delphi安装不完整,或者是他给出的源代码中缺少这两个类。您可以到您下载这个代码的网站看一下有没有相应的信息。

如果您还有疑问,您可以补充问题。谢谢。

====================================================
对问题补充的答复:

很抱歉我这里没有您需要的程序。

我也到网上找了一下,这个文件似乎的确只在Delphi 5 中。并且,您的组件安装步骤也没错。

您给出的控件包中的文件列表来看,这个文件包中应该包含了这个组件的源文件(dpr的工程文件和pas的源代码),您可以尝试用Delphi打开这个工程然后重新编译一下试试。

另外我比较感兴趣的是这个DFSStatusBarReg.pas文件,因为文件名中包含了“Reg”这个词(Register),您可以看一下这个文件的内容。

希望对您有帮助。
参考技术A Class TComPort not found. lgnore the error and continue?
无法找到类TComPort,忽略这个错误并继续?
Class TdsStatusBar not found. lgnore the error and continue?
无法找到类TdsStatusBar,忽略这个错误并继续?
NOTE:lgnoring the error may cause components to be deleted or property values to be lost.
参考技术B 去上面找答案
http://www.80diy.com/home/20030817/default.html

Delphi 类的类 class of 用法

http://blog.csdn.net/blue_morning/article/details/8815609

 

Delphi 类的类 class of 用法

 
这个概念本来在一个关于Delphi RTTI 介绍的文档中已经说得很清楚了。但没有任何关于实际使用的介绍,在我明白了这个概念和如何使用后决定写一个使用说明以方便大家使用。


类的类在什么时候使用:
知道父类但需要创建具体的子类时(你不知道子类会是什么)


例如:
一个Delphi Exe程序中项目文件的Application.CreateForm,跟踪下源代码就能明白,Delphi实现了在根本不知道我们会从TForm派生出什么类的情况下,实现了对这个类的创建。


关键:
  TComponentClass = class of TComponent;

  procedure TApplication.CreateForm(InstanceClass: TComponentClass; var Reference);
  begin
    Instance := TComponent(InstanceClass.NewInstance);
    Instance.Create(Self);

    ...

  end;

关键的代码就是加粗的这两句和类的类声明

 

本质:

类的类在声明时,说明相应的类及子类会被编译器附加额外的信息(RTTI),以让系统可以找到具体子类的Create和NewInstance地址。应该就是这样。

代价:

额外的RTTI信息会使我们的类占用额外的内存,这是便利的代价。

 

简单的问题复杂的说明

本来问题已经说明,但还是存在一个问题:我们的代码中什么地方需要使用class of ?我发现这个问题说明起来很复杂,我举个我人个开发使用的例子。在做数据库程序开发时:我先定义一个TTableSet对象,其功能类似DataModule。用于放置TExportTable,TExportTable类其功能类似TDataSet。我定义了它的增、删、改、查等基本操作。TTableSet对象有一个Add方法,大概代码如下:

procedure TTableSet.Add(const AExoprtObjectInfo: record)
var
  ExprotTable: TExportTable;
begin
  ExprotTable := TExportTable.Create(nil)
  根据AExoprtObjectInfo的数据内容具体化ExportTable对象以方便复用代码
end;


然后,在具体的业务功能(例如入库单管理)中需要从TExportTable继承一个入库单类
TInStorageBill = class(TExportTable)
   一些具体的类属性和方法
  覆盖TExportTable的Create方法以创建相应的资源
end;


废话了那么多,问题才终于出现了:“我怎么才能在TTableSet.Add()方法中创建TInStorageBill对象?”或换而言之:“我怎么在在知道父类的情况下创建其不确定的子类?”。 而你们都知道答案了。


欢迎使用 class of

以上是关于delphi程序问题:Class TComPort not found. lgnore the error and continue?的主要内容,如果未能解决你的问题,请参考以下文章

帮忙看下delphi程序 简单按照书上例子写了程序,运行的时候出现错误

delphi中的线程程序

delphi 7 做多线程程序,内存不断增加,怎么解决?

delphi 运行后闪退

《Delphi XE10》第一个程序(01)

delphi 使用oauth的控件