我在两个单元中定义了数组:
TVisArray=array[0..4] of real;但是,在以上述的数组为参数在不同的单元之间传递参数的时候为什么提示:
[Error] UnitMain.pas(982): Incompatible types: 'UnitCalculate.TVisArray' and 'UnitMain.TVisArray'???
谢谢!
TVisArray=array[0..4] of real;但是,在以上述的数组为参数在不同的单元之间传递参数的时候为什么提示:
[Error] UnitMain.pas(982): Incompatible types: 'UnitCalculate.TVisArray' and 'UnitMain.TVisArray'???
谢谢!
解决方案 »
- (在线等待)满足条件求和问题
- idhttp组件判断后缀为rar的超链接地址是否能正常访问
- 用delphi7开发了一个Activex控件,在网页中调用,控件中的函数也能正常执行,但是在IE关闭时报错?高手请进
- cxGrid主从表导出excel的问题
- 紧急求救:“File: C:\TEMP\INMEM000.REM:tbHPSBB: Dataset not in edit or insert mode:Insufficient disk space.”
- 请问分布式的c/s应用当中,delphi怎么样实现及时更新每个客户端的软件版本?谢谢大侠们,请多多指教。
- BatchMove
- 请问如何得到jpg的yuv数据?
- 诚聘Delphi开发工程师
- 如何定制提示框(hint)?
- 来来来,看看我的HOOK,怎么什么都HOOK不到啊?
- 有相同字段的两个dbgrid如何实现数据的同步选择?
sorry,my systematic don't support simplified(Chinese) character.
I hope you can understand.
可是,很明显的我是同样的定义语句呀:
如下:
unit UnitMain;interfaceuses
.........type
TVisArray=array[0..4] of real;
TFinalRec=record
SeriesNo:integer;
CurrLen:Real;
Kind:string[10]; //有两个可能:“管线”或者是“站名”
Temp:real;
Pressure:real;
TNing:real;
Vis:TVisArray;
VisCeNian:TVisArray;
end; TMatrix=array of array of real;
TSOilArray=array[0..4] of array[0..11] of real;
TXiLaArray=array[0..1] of array of real;
unit UnitCacaulate;interfaceuses
......., Math;type
TMatrix=Array of array of real;
TXiLaArray=array[0..1] of array of real;
TVisArray=array[0..4] of real;
TMyCalculate = class(TObject)他们的定义语句是同样的呀?为什么会不兼容呢?
//TVisArray=array[0..4] of real;
不要在两个单元中都定义,你可以在一个单元中定义,然后在另一个单元引用这个类型。
那么,能否劳驾您给我具个例子呢?
真的不好意思,我的Pascal语言实在太差劲。呵呵,看来我得加分揭贴了。
.........type
TVisArray=array[0..4] of real;
TMatrix=array of array of real;
TSOilArray=array[0..4] of array[0..11] of real;
TXiLaArray=array[0..1] of array of real; TFinalRec=record
SeriesNo:integer;
CurrLen:Real;
Kind:string[10]; //有两个可能:“管线”或者是“站名”
Temp:real;
Pressure:real;
TNing:real;
Vis:TVisArray;
VisCeNian:TVisArray;
end;然后在unit UnitCacaulate;单元中interfaceuses
......., Math, UnitMain;//引用前面的单元type
//TMatrix=Array of array of real; 这些都不用,如果需要用的这些类型,可以直接
//TXiLaArray=array[0..1] of array of real; 在需要的地方引用TMatrix等类型就行。
//TVisArray=array[0..4] of real; 一般这些共用的类型的定义可以放在一个独立的单
// 元里,然后由其它的单元引用。具体为什么?说不上,呵呵...
TMyCalculate = class(TObject)
Fin:=MyCalcaulate.GetFin(Vel,Dia,Dens,CrrntRec.VisCeNian); //在这里报错!//CrrntRec.VisCeNian是一个
TFinalRec=record
SeriesNo:integer;
CurrLen:Real;
Kind:string[10]; //有两个可能:“管线”或者是“站名”
Temp:real;
Pressure:real;
TNing:real;
Vis:TVisArray;
VisCeNian:TVisArray;
end;
的记录;下面再来看看函数的定义:
function TMyCalcaulate.GetFin(Vel,Dia,Dens:real;VisArray:TVisArray;CriticalNumber:real=2100):real;呵呵,可能还是没有讲的很清楚,不过你可以参考我上面贴的一部分关于这两个单元的比较详细的代码。