2011-12-03 10 views
0

ニットピッカーを挫折させるために、私はここでこれを検索し、答えを見つけることができませんでした。そして、同様の質問をスクロールしました... TFormへのショートカットの追加ショートカットをTFormまたはPanel.Transparentに追加しますか?

デスクトップからアプリケーションのTFormにいくつかのショートカットをドラッグアンドドロップしたいとします。私はAnders Melanderの華麗なDrag Drop Suite(DDS)を使用しています。

フォームにTImageを配置しようとしましたが、DDSがイメージにドロップしないため、TPmelにTImageを追加しました。私はその後、パネル上にドロップし、TImage.Pictureに画像を割り当てることができます。 Panelに透明なプロパティがないため、フォーム上のショートカットが背後に表示されているPanelにぎこちないように見える問題でした。

私はTImageにドロップするか、基になるTPanelを透明にする必要があります。

これらのオプションのいずれか、またはもっと良い方法として、自分のフォームに直接ショートカットをドロップする方法について、誰でもコードスニペットを助けることができます。

+0

「ニット・ピッカーを阻止するために」うん、それは正しい気分になります。 :p – GolezTrol

+0

そして、コードを少し投稿すると助けになります。 – GolezTrol

答えて

3

偶然私はTWinControlの(TPanelを含むウィンドウハンドルを持つすべての表示制御のためのベースは)透明にするために必要な

感謝。私は数多くの結果を見つけ、this answerに適用しました。

ドラッグアンドドロップを実装してからしばらくしていますが、APIを呼び出してパネルのハンドルを渡すと仮定します。 TImageを使用できない理由については、これが答えています。 TImageはグラフィックコントロールであり、ハンドルを持たないコントロールで、メッセージを受信し描画するために親に依存します。

これもハンドルがあるので、フォームを使用することは可能です。

1

TImageが直接TFormにある場合は、TFormにドロップを処理させます.は必要ありません。 OLEドラッグ&ドロップ操作(アンダーのコンポーネントが実装する)は、ドラッグアンドドロップが発生する座標を提供します。 TFormは、ドラッグがTImageが占める領域を超えたときと、ドラッグされるデータのタイプを検出し、その領域内でサポートされているタイプをドロップし、ドロップされたデータを抽出し、必要に応じてTImageを更新できるようにする必要があります。その基準に合致しないものはすべて拒否します。

関連する問題