いくつかの Delphi 2005 アプリを XE2 に変換しようとしていますが、それらのアプリは使用できなくなったコンポーネントを使用しているため、基本を処理する独自のカスタム コンポーネントを作成しました。コンポーネントをフォームにドロップしても、通常は問題ありません。 、ただし、DFM でプロパティが既に設定されているこのコンポーネントを含む VCL フォームを開くと、問題が発生しました。
Delphi 2005 DFM には、次のようなものが含まれています。
object ExtendedGrid1: TExtendedGrid
Left = 32
Top = 16
Width = 577
Height = 257
TabOrder = 0
Columns.Columns = (
'OE6.02'
(
'Test1'
64
False
0
'clWindowText'
-11
'Tahoma'
0
8
False
False
False
False
0
1
0
0
0
1
0
'clWindowText'
-11
'Tahoma'
0
8
False
False
False
False
0
1
0
'test2'
64
False
0
'clWindowText'
-11
'Trebuchet MS'
0
8
True
True
False
False
0
1
0
0
0
1
0
'clWindowText'
-11
'Tahoma'
0
8
False
False
False
False
0
1
0
''
'0'))
RowHeights = (
19
19)
end
コンポーネントには TCollection から継承するクラスに基づく Columns プロパティがあり、継承されたアイテムを使用するコレクションに Columns プロパティを追加しましたが、デザイナーでフォームを開こうとすると、次のエラーが発生します。
フォーム作成エラー: MyGrid1.Columns.Columns の読み取りエラー: プロパティの列が存在しません。
コンポーネントの新しいコピーを作成して列を設定すると、DFM でまったく異なるものが表示されます。
Columns = <
item
Title = 'Test1'
Width = 64
Editable = False
HeaderClipStyle = csClip
HeaderFont.Charset = DEFAULT_CHARSET
HeaderFont.Color = clWindowText
HeaderFont.Height = -11
HeaderFont.Name = 'Tahoma'
HeaderFont.Style = []
HeaderHAlign = haRight
HeaderInnerBevel = bvNone
HeaderOuterBevel = bvNone
HeaderBorderWidth = 0
HeaderBevelWidth = 0
ContentsClipStyle = csClip
ContentsFont.Charset = DEFAULT_CHARSET
ContentsFont.Color = clWindowText
ContentsFont.Height = -11
ContentsFont.Name = 'Tahoma'
ContentsFont.Style = []
ComboFilled = False
ComboEditable = False
end
item
Title = 'test2'
Width = 64
Editable = False
HeaderClipStyle = csClip
HeaderFont.Charset = DEFAULT_CHARSET
HeaderFont.Color = clWindowText
HeaderFont.Height = -11
HeaderFont.Name = 'Trebuchet MS'
HeaderFont.Style = []
HeaderInnerBevel = bvNone
HeaderOuterBevel = bvNone
HeaderBorderWidth = 0
HeaderBevelWidth = 0
ContentsClipStyle = csClip
ContentsFont.Charset = DEFAULT_CHARSET
ContentsFont.Color = clWindowText
ContentsFont.Height = -11
ContentsFont.Name = 'Tahoma'
ContentsFont.Style = []
ComboFilled = False
ComboEditable = False
end
end>
古い Delphi 2005 DFM を処理できるように、カスタム コンポーネントを作成できるようにする記事や説明を誰か教えてもらえますか? ありがとう。