GVKun编程网logo

Delphi IDE中是否存在“不兼容的参数列表”消息的解决方法?(dev不兼容)

17

想了解DelphiIDE中是否存在“不兼容的参数列表”消息的解决方法?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于dev不兼容的相关问题,此外,我们还将为您介绍关于delphi2006–

想了解Delphi IDE中是否存在“不兼容的参数列表”消息的解决方法?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于dev不兼容的相关问题,此外,我们还将为您介绍关于delphi 2006 – 是否可以找出资源名称是否存在?、Delphi 5与库不兼容、Delphi 7和Delphi 2010之间的TVirtualStringTree兼容性 – ‘参数列表不同’、Delphi 7序列号过期的解决方法的新知识。

本文目录一览:

Delphi IDE中是否存在“不兼容的参数列表”消息的解决方法?(dev不兼容)

Delphi IDE中是否存在“不兼容的参数列表”消息的解决方法?(dev不兼容)

请考虑这个简化的例子:

type
  TForm43 = class(TForm)
    drwGrd1: TDrawGrid;
    procedure drwGrd1DrawCell(Sender: TObject; ACol,ARow: Integer; 
      Rect: Windows.TRect; State: TGridDrawState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

procedure TForm43.drwGrd1DrawCell(Sender: TObject; ACol,ARow: Integer;
  Rect: Windows.TRect; State: TGridDrawState);
begin
  Rect.Left := 5;
end;

在方法drwGrd1DrawCell中,我明确地使用了Windows.TRect来解决在两个不同单元中定义的TRect之间的歧义.一切正常,代码正在编译.
但每次当我保存上述单位我收到来自德尔福IDE这问了一个问题:“通过drwGrd1.OnDrawCell引用的drwGrd1DrawCell方法有一个不兼容的参数列表中删除引用.?”

这非常烦人.有没有办法关闭此消息对话框或以不会显示的方式编写我的代码?不幸的是我不能改变TRect2的TRect或类似的东西.

解决方法

保存表单时出现错误的原因是因为Delphi比较了所有事件处理程序的声明,以确保它们的声明与它们的继承实现完全相同.添加Windows.声明使比较失败.

您可以删除Windows.如果您在声明TRect的uses子句中的另一个单元之后移动Windows单元,则从drwgd1DrawCell()开始.这是因为Delphi从最后一个到第一个处理uses子句中的单元.它将使用它发现的第一个实例的TRect …

delphi 2006 – 是否可以找出资源名称是否存在?

delphi 2006 – 是否可以找出资源名称是否存在?

找出资源名称是否存在的最佳方法是什么 – 除了查看是否
LoadFromresourceName (HInstance,'FOOBAR')

引起异常?

解决方法

您可以使用 FindResource功能(记住传递正确的资源类型)
if FindResource(hInstance,'FOOBAR',RT_RCDATA) <> 0 then
  // do something

Delphi 5与库不兼容

Delphi 5与库不兼容

我正在尝试将Advantech(BDaqCL.pas)库添加到我在Delphi 5中的应用程序项目中,但.PAS文件中充斥着如下代码:

AccessMode = (
  ModeRead = 0,ModeWrite,ModeWriteWithReset
);

这会导致错误:

',' or ')' expected but '=' found

这是Delphi后期版本中D5不兼容的功能吗?如果是这样,值得手动改变每个人(有很多)或者我是否会遇到更深层次的问题?

编辑:大多数枚举如上所述,但也有很多更复杂的如下.手动做的太多了:

dioPortDir = (
  Input   = $00,LoutHin = $0F,LinHout = $F0,Output  = $FF
);

编辑:我开始将它们声明为常量.谁能告诉我,做以下事情是否正确

var
    dioPortDir = LongInt;
const
      Input   = $00;
      LoutHin = $0F;
      LinHout = $F0;
      Output  = $FF;

我在哪里列出var声明并将const声明移到顶部.

当const不等于任何东西时,我不确定该做什么,例如

ValueRange = (
  V_OMIT = -1,// UnkNown when get,ignored when set
  V_Neg15To15 = 0,// +/- 15 V
  V_Neg10To10,// +/- 10 V
  V_Neg5To5,// +/- 5 V
  V_Neg2pt5To2pt5,// +/- 2.5 V
  V_Neg1pt25To1pt25,// +/- 1.25 V
  V_Neg1To1,// +/- 1 V

  V_0To15,// 0~15 V
  V_0To10,// 0~10 V
  V_0To5,// 0~5 V
  V_0To2pt5,// 0~2.5 V
  V_0To1pt25,// 0~1.25 V
  V_0To1,// 0~1 V

  mV_Neg625To625,// +/- 625mV
  mV_Neg500To500,// +/- 500 mV
  mV_Neg312pt5To312pt5,// +/- 312.5 mV
  mV_Neg200To200,// +/- 200 mV
  mV_Neg150To150,// +/- 150 mV
  mV_Neg100To100,// +/- 100 mV
  mV_Neg50To50,// +/- 50 mV
  mV_Neg30To30,// +/- 30 mV
  mV_Neg20To20,// +/- 20 mV
  mV_Neg15To15,// +/- 15 mV
  mV_Neg10To10,// +/- 10 mV
  mV_Neg5To5,// +/- 5 mV

  mV_0To625,// 0 ~ 625 mV
  mV_0To500,// 0 ~ 500 mV
  mV_0To150,// 0 ~ 150 mV
  mV_0To100,// 0 ~ 100 mV
  mV_0To50,// 0 ~ 50 mV
  mV_0To20,// 0 ~ 20 mV
  mV_0To15,// 0 ~ 15 mV
  mV_0To10,// 0 ~ 10 mV

  mA_Neg20To20,// +/- 20mA
  mA_0To20,// 0 ~ 20 mA
  mA_4To20,// 4 ~ 20 mA
  mA_0To24,// 0 ~ 24 mA

  // For USB4702_4704
  V_Neg2To2,// +/- 2 V
  V_Neg4To4,// +/- 4 V
  V_Neg20To20,// +/- 20 V

  Jtype_0To760C = $8000,// T/C J type 0~760 'C
  Ktype_0To1370C,// T/C K type 0~1370 'C
  Ttype_Neg100To400C,// T/C T type -100~400 'C
  Etype_0To1000C,// T/C E type 0~1000 'C
  Rtype_500To1750C,// T/C R type 500~1750 'C
  Stype_500To1750C,// T/C S type 500~1750 'C
  Btype_500To1800C,// T/C B type 500~1800 'C

  Pt392_Neg50To150,// Pt392 -50~150 'C
  Pt385_Neg200To200,// Pt385 -200~200 'C
  Pt385_0To400,// Pt385 0~400 'C
  Pt385_Neg50To150,// Pt385 -50~150 'C
  Pt385_Neg100To100,// Pt385 -100~100 'C
  Pt385_0To100,// Pt385 0~100 'C  
  Pt385_0To200,// Pt385 0~200 'C 
  Pt385_0To600,// Pt385 0~600 'C 
  Pt392_Neg100To100,// Pt392 -100~100 'C  
  Pt392_0To100,// Pt392 0~100 'C 
  Pt392_0To200,// Pt392 0~200 'C 
  Pt392_0To600,// Pt392 0~600 'C 
  Pt392_0To400,// Pt392 0~400 'C 
  Pt392_Neg200To200,// Pt392 -200~200 'C  
  Pt1000_Neg40To160,// Pt1000 -40~160 'C  

  Balcon500_Neg30To120,// Balcon500 -30~120 'C  

  Ni518_Neg80To100,// Ni518 -80~100 'C 
  Ni518_0To100,// Ni518 0~100 'C 
  Ni508_0To100,// Ni508 0~100 'C 
  Ni508_Neg50To200,// Ni508 -50~200 'C 

  Thermistor_3K_0To100,// Thermistor 3K 0~100 'C 
  Thermistor_10K_0To100,// Thermistor 10K 0~100 'C 

  Jtype_Neg210To1200C,// T/C J type -210~1200 'C
  Ktype_Neg270To1372C,// T/C K type -270~1372 'C
  Ttype_Neg270To400C,// T/C T type -270~400 'C
  Etype_Neg270To1000C,// T/C E type -270~1000 'C
  Rtype_Neg50To1768C,// T/C R type -50~1768 'C
  Stype_Neg50To1768C,// T/C S type -50~1768 'C
  Btype_40To1820C,// T/C B type 40~1820 'C

  Jtype_Neg210To870C,// T/C J type -210~870 'C
  Rtype_0To1768C,// T/C R type 0~1768 'C
  Stype_0To1768C,// T/C S type 0~1768 'C

  // 0xC000 ~ 0xF000 : user customized value range type
  UserCustomizedVrgStart = $C000,UserCustomizedVrgEnd = $F000,// AO external reference type
  V_ExternalRefBipolar = $F001,// External reference voltage unipolar
  V_ExternalRefUnipolar = $F002  // External reference voltage bipolar
);

正如你所看到的,我的工作已经完成了,所以最好确保我先做好.
谢谢

解决方法

在Delphi 6中添加了此功能 Enumerated Types with Explicitly Assigned Ordinality,这就是代码无法在Delphi 5中编译的原因.

在您的示例中,代码等效于

AccessMode = (
  ModeRead,ModeWriteWithReset
);

你可以安全地使用它.我不太明白为什么代码的作者明确地将0分配给第一个序数,因为它对类型的含义没有影响.

如果您遇到明确设置最低值不为0的序数的代码,或者具有非连续的常规,则解决方法会更复杂.

请注意,在与外部事物进行互操作时,通常只需要明确设置常规,例如:文件格式,来自或来自其他库的调用.如果枚举类型的变量只存在于内存和代码中,那么您很可能并不关心它们具有什么样的正常性.

我不是100%确定为什么添加这个功能但我似乎记得需要支持Kylix产品.

Delphi 7和Delphi 2010之间的TVirtualStringTree兼容性 – ‘参数列表不同’

Delphi 7和Delphi 2010之间的TVirtualStringTree兼容性 – ‘参数列表不同’

我已经创建了一个包含TVirtualStringTree的表单,该表单在Delphi 7和Delphi 2010中有效.我注意到,当我在两个平台之间移动时,我在树事件上得到消息’…参数列表不同..’和字符串类型正在改变TWIDEString(D7)和字符串(D2010).我发现用来抑制此错误的唯一技巧是使用编译器指令,如下所示:

{$IFDEF TargetDelphi7}
procedure VirtualStringTree1GetText(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: WideString);
{$ELSE}
procedure VirtualStringTree1GetText(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: string);
{$ENDIF}

并在事件实施的地方重复这一点.我错过了一个简单的解决方案?
谢谢.

解决方法

最简单的解决方案是为D7和D2010维护单独的源和组件文件夹.它最终会节省时间和麻烦.

Delphi 7序列号过期的解决方法

Delphi 7序列号过期的解决方法

总结

以上是小编为你收集整理的Delphi 7序列号过期的解决方法全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

今天关于Delphi IDE中是否存在“不兼容的参数列表”消息的解决方法?dev不兼容的介绍到此结束,谢谢您的阅读,有关delphi 2006 – 是否可以找出资源名称是否存在?、Delphi 5与库不兼容、Delphi 7和Delphi 2010之间的TVirtualStringTree兼容性 – ‘参数列表不同’、Delphi 7序列号过期的解决方法等更多相关知识的信息可以在本站进行查询。

本文标签: