2009-03-17 10 views
1

私はTDrawGridコントロールを持っているデルファイでアプリケーションを開発する必要があり、選択したレイアウトの種類に応じて画像がグリッドのセルに表示されます。私はセルのキャンバスに線を描きます。私が提供しなければならない機能は、線を描くこと、イメージ上に複数の線を描くこと、セルを選択すること、任意の1行を選択して移動すること、それを展開すること、削除することです。デルファイの描画アプリケーションを開発するにはどうすればいいですか?

実行時に行をコントロールとして作成し、すべてマウスイベントに応答する方法はありますか。

答えて

1

カスタムコントロールを作成できます。 (いくつかのキャッチがあるので、コンポーネントライターのマニュアルを見てください)。

TShapeコントロールを見ることができます。シンプルな形状に使用されます。たぶん、ラインをサポートするためにそれを拡張することができます。

3

描画オブジェクトをウィンドウ非表示のVCLコントロールとして実装することをお勧めします。あなたはそれで多くを得ることはできませんが、ヒットテストのようなものは、あなた自身でこれをコーディングするときよりもはるかに難しいでしょう。

VCLコントロールは長方形であるため、平行な対角線の場合、1つのコントロールが少なくとも部分的にもう一方のコントロールになります。一般に、マウスイベントは、Zオーダーの一番上のコントロールにのみ到達します。これは、自分のコードで修正する必要があるものです。

選択された行には終点がマークされている必要があります。そのため、ユーザーは移動またはサイズ変更する場所を把握する必要があります。カスタムコントロールが(実行時に)提供しないものもありますので、これをコーディングする必要があります。

私はたぶん単純にラインオブジェクトクラスを作成し、作成、描画、選択、移動、サイズ変更、ラインを自分で削除するためのすべての機能を実装します。

1

これまでは、図形、テキスト、回線を接続する&を使用したネットワーク設計アプリケーションを作成しました。私はDevExpressのExpressFlowChart製品を利用しましたが、いくつかの弱点がありましたが、その作業は比較的簡単でした。

mghieが述べたように、ヒットテストは特に問題の深刻な問題点の1つです。誰かにあなたのために重労働をさせるのはいいことです。

関連する問題