Delphi 2006 (私が思うに) で TFlowPanel と TGridPanel が導入される前に、概念が似ているコントロールを作成しました。これらのコントロールが実行しないことはまだいくつかあります。私のコードを Delphi 2009 にアップグレードするときに、それにいくつかの拡張機能を追加することにしました。
現在、子コントロールの順序は作成順序によって決定されます。FlowPanel と GridPanel は、ControlIndex やその他のフィルター処理されたプロパティでより良い方法を示していますが、設計時にドラッグ アンド ドロップの並べ替えを処理する方法があるかどうか疑問に思っていました。私が知る限り、編集コントロールをドラッグしてパネルにドロップしても、設計時にアクセスできるものは何も呼び出されません。
ドロップ操作を直接検出する方法、またはコントロールが移動したことを検出してどこに移動するかを決定する方法について、半分空想していました。
何か案は?
更新: OK、動作しました。コンテナー コントロールは、コントロールの配置を管理するために、AlignControls を既にオーバーライドしていました。ネストされたコントロールをドラッグ アンド ドロップすると、AlignControls が再度呼び出されます。次に、コントロールの新しい座標をリスト内の他のコントロールと比較し、適切な位置に移動しました。
解決しなければならない問題がいくつかありました (ほとんどは、AlignControls への多数の呼び出しに関連しています) が、基本的な概念は十分に単純です。助けてくれたすべてのコメント投稿者に感謝します。