如何解决 DSServerModule1.ClientHeight: Property does not exist 错误

Jap*_*ter 3 delphi client-server server

我编写了一个使用 firebird 数据库的应用程序,使用服务器和客户端。我最初使用 Delphi XE2 对应用程序进行编码,并且一切正常。我现在已经转移到 Delphi XE6。

我重新编译了服务器并且没有错误,但是现在我重新编译了客户端,它给了我以下错误:

ProjectPiping.exe 引发执行类 TDBXError 并显示消息“远程错误:读取 DSServerModule1.ClientHeight 时出错:Propery CliehtHeight 不存在。

我在网上读到你需要将 dfm 文件从 Object 更改为 Inherinted ,但这没有区别。

有没有人可以帮助我,因为我不认为我可以解决这个问题,除非回到 Delphi XE2

Dal*_*kar 5

缺少属性错误很常见,Frames并且DataModules不直接从基础 DelphiTFrameTDataModule类继承。在某些情况下(随着每个 Delphi 版本而变化)Delphi 将无法访问FrameDataModule祖先以确定它是否处理TFrameTDataModule后代。当这种情况发生时,它会错误地解释Frame/DataModuleForm并污染它们.dfmForm特定属性。

您不必回滚到 XE2,您可以通过使用或类似编辑器从文件中删除不良属性来解决该问题。由于这是您在进行此类设计工作时必须经常重复的操作,因此版本控制可以提供很大帮助。只是不要提交不应该存在的更改。对抗文件中的零星更改的另一种方法是在完成设计时对它们的工作后将它们设为只读。.dfmNotepadFrame/DataModule.dfm

更正空DataModule .dfm文件:

inherited DataModule1: TDataModule1
  OldCreateOrder = False
  Height = 150
  Width = 215
end
Run Code Online (Sandbox Code Playgroud)

损坏的空DataModule .dfm文件

object DataModule1: TDataModule1
  Left = 0
  Top = 0
  ClientHeight = 188
  ClientWidth = 303
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
end
Run Code Online (Sandbox Code Playgroud)