3

実行時に作成された BitBtn の Parent プロパティを設定しようとすると、コンパイル時に奇妙なエラーが発生します。Win7 64 ビットで Delphi 7 を使用しています。

[エラー] unitMainForm.pas(70): 互換性のない型: 'TWidgetControl' および 'TMainForm'

次のように、実行時に BitBtn を作成しています。

  newButton := TBitBtn.Create(Self);
  newButton.Parent := Self;

ここでの「Self」は、「MainForm」という名前のフォームです。親に何を入れても、これを取得しています。現在の Form、ScrollBox、Panel を入れてみました。SpeedButton を作成しようとすると、同じことが起こります。問題は、私のコードは、TButtons や TImages を使用すると期待どおりに動作しますが、TBitBtns や TSpeedButtons では動作しません。TButton と TImage は Form を親として受け入れ、期待どおりに表示されます。何か案は?お役に立てれば、リクエストに応じてコード全体のサンプルを提供できます。

4

1 に答える 1

6

CLX と VCL を混在させています。ボタンは CLXTBitBtnですが、フォームは VCL フォームです。

アプリを VCL アプリにするか CLX アプリにするかはわかりませんが、いずれにしても、アプリのすべての部分が同じフレームワークから取得される必要があります。

私の推測では、VCL アプリが必要です。どういうわけか、VCL ユニットQButtonsではなく、CLX ユニットを使用しています。Buttonsそのため、CLX バージョンの を入手していますTBitBtn

したがって、私の推測が正しいと仮定すると、単純に に変更QButtonsするButtonsと、コードがコンパイルされます。

于 2013-02-06T12:35:36.420 に答える