2009-03-09 1 views
0

私は、SDL 1.3 APIを使用して、1つまたは複数のSDLレンダリングサーフェスをDelphiウィンドウに埋め込むことができるシンプルなコンポーネントを作成しようとしています。コンパイルとインストールはうまくいきますが、フォームデザイナーでコンポーネントを使用しようとすると、オブジェクトインスペクターでそのプロパティにアクセスしたり、フォームを保存したり、コンポーネントを削除したり、コンポーネントを削除しようとするたびにAVを生成します。フォームを実行しようとすると、リンカエラーが発生します。何らかの理由でDFMを正しく読み取れないようです。カスタムコンポーネントがIDEでAVを生成するのはなぜですか?

DLLはhttp://www.libsdl.org/tmp/SDL-1.3-dll.zipにあり、私のコンポーネントのソースコードはhereからダウンロードできます。 SDL.pasはJEDI-SDLヘッダーファイルです。残りは私自身のコードです。

フォームデザイナーでAVを呼び出す理由はありません。実行時にコントロールを動的に作成すると、安定性の問題はありません。誰もがこれを見て、私はそれをクリアするのに役立つかもしれないいくつかのフィードバックを提供することはできますか?

答えて

14

これを自分でデバッグすることができます。コンポーネントが含まれているパッケージプロジェクトを開きます。次にRun | Parametersに行き、IDE自体をホストアプリケーションとして入力します。 IDE内からIDEを実行します。その後、AVを再現するためにあなたのステップを繰り返すと、IDEは停止し、何かが失敗している場所を表示する必要があります。そこから通常のデバッグ手法を使用することができます。

+0

OK。公開されたセクションからFlagsプロパティを削除すると、問題は解決しません。 IDEは、基礎となるSet定義のRTTIをルックアップしようとするとチョークします。私はすべてのアップデートがインストールされた状態でDelphi 2009を実行しています。これは2009年に悪いRTTIが見つかった第2のケースです。私はQCに入れます。 –

+0

セットはどのように宣言されていますか?セットの要素数は?最大32の要素のみを含むセットを公開することができます。 –

+0

TSdlWindowFlags =(sdlwFullscreen、sdlwOpenGl、sdlwShown、sdlwBorderless、sdlwResizable、sdlwMinimized、sdlwMaximized、sdlwInputGrabbed、dslwInputFocus、sdlwMouseFocus、sdwlForeign、sdlwForce32 = 31)のセット。列挙された12個の要素は細工されているので、 "int"を期待するCルーチンに渡すことができます。 –