I wrote an application that uses a firebird database, using a server and a client. I originally coded the application using Delphi XE2 and all worked fine. I have now moved over to Delphi XE6.
I recompiled the server and there was no errors, but now that I recompile the client it gives me the following error:
ProjectPiping.exe raised execption class TDBXError with message "Remote error: Error reading DSServerModule1.ClientHeight: Propery CliehtHeight does not exist.
I have read online that you need to change the dfm file ontop from Object to Inherinted but that made no difference.
Is there anyone that can assist me as I do not see anyway that I can solve this except going back to Delphi XE2
Missing property errors are common for Frames
and DataModules
that do not directly inherit from base Delphi TFrame
and TDataModule
class. Under some circumstances (that change with every Delphi version) Delphi will not be able to access Frame
or DataModule
ancestors in order to determine whether it deals with TFrame
or TDataModule
descendant. When that happens, it will wrongly interpret Frame/DataModule
as Form
and pollute their .dfm
with Form
specific properties.
You don't have to rollback to XE2 and you can fight the issue by removing bad properties from .dfm
file using Notepad
or similar editor. Since this is operation you will be bound to repeat often while doing design work on such Frame/DataModule
, version-control can be of great help. Just don't commit changes that are not supposed to be there. Another way of fighting against sporadic changes in .dfm
files is to make them read-only once you have finished your design-time work with them.
Correct empty DataModule .dfm
file:
inherited DataModule1: TDataModule1
OldCreateOrder = False
Height = 150
Width = 215
end
Broken empty DataModule .dfm
file
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