TDelphiTwain组件,破坏delphi格式(dfm文件)

Joh*_*ohn 3 delphi twain delphi-7

我已经下载了opensource delphi twain组件(TDelphiTwain).有趣的是,当放置并保存在表单上时,它会为自己创建糟糕的dfm条目.

  object DelphiTwain: TDelphiTwain
    OnSourceDisable = DelphiTwainSourceDisable
    OnSourceSetupFileXfer = DelphiTwainSourceSetupFileXfer
    TransferMode = ttmMemory
    SourceCount = 0
    Info.MajorVersion = 1
    Info.MinorVersion = 0
    Info.Language = tlDanish
    Info.CountryCode = 1
    Info.Groups = [tgControl, tgImage, tgAudio, MinorVersion]
    Info.VersionInfo = 'Application name'
    Info.Manufacturer = 'Application manufacturer'
    Info.ProductFamily = 'App product family'
    Info.ProductName = 'App product name'
    LibraryLoaded = False
    SourceManagerLoaded = False
    Left = 520
    Top = 136
  end
Run Code Online (Sandbox Code Playgroud)

问题在于:

   Info.Groups = [tgControl, tgImage, tgAudio, MinorVersion]
Run Code Online (Sandbox Code Playgroud)

只有三个可能的元素:

tgControl, tgImage and tgAudio
Run Code Online (Sandbox Code Playgroud)

每次我保存表单时它都会添加MinorVersion.当应用程序运行时,我收到Info.Groups存在无效属性的错误.当我手动调整坏部分而不离开dfm文件时,应用程序启动正常.

我查看了互联网,有一个询问这个奇怪的问题,不幸的是它还没有解决.

我认为存在某种内存损坏.在互联网上的帖子中,显示了奇怪的迹象......

有没有人使用过该组件或者可以给我一些暗示如何解决这个问题?

Uwe*_*abe 5

该错误似乎在TTwainIdentity.GetGroups中,其中结果未初始化.您可以尝试通过替换来更改代码

Include(Result, tgControl);
Run Code Online (Sandbox Code Playgroud)

Result := [tgControl]; 
Run Code Online (Sandbox Code Playgroud)

您必须重新编译包以使此更改在IDE中工作.