我正在尝试创建一个 Delphi 网格,以允许在 db 网格中显示和编辑每行可能具有不同数据类型的数据。我想为每种数据类型显示一个特定的控件,例如当数据类型是 DateTime 时,我想显示我的自定义编辑控件,它允许在其中键入日期或弹出日历。
数据看起来像这样:
Name DataType DateValue StringValue BooleanValue
---------------------------------------------------------
A Date 1/1/2007
B String asdf
C Boolean True
...并且在数据库中,该表为每种可能的值类型都有一个列。所以,有一个BooleanValue
列DateValue
,等等。
我想做的是在网格中显示一个“值”列,根据该行的“数据类型”显示适当的编辑控件。因此,网格应如下所示:
Name DataType Value
---------------------------
A Date 1/1/2007
B String asdf
C Boolean True
看来我需要根据Value
列的值动态地为每一行显示不同的编辑控件(以允许用户编辑列)DataType
。我知道有更高级的网格可以处理这类问题,但是除了 Delphi 开箱即用的功能之外,这些功能不会允许任何事情。
关于如何制作这样的东西的任何想法?