Moin und willkommen hier.
Ich würde die roten Ablagen als Panels machen. Bei den Buttons stellst Du DragMode auf auf dmAutomatic
Jetzt musst Du noch bei den Panels OnDragOver und OnDragDrop implementieren. Bei OnDragOver prüfst Du, ob ein Button von Dir dort drüber gezogen wird und wenn ja, dann Accept auf true setzen. Und bei OndragDrop setzt Du die Postion des Buttons (left und top) so, dass der Button hübsch mittig auf dem Panel liegt.
Hoffe, damit hast Du einen Ansatz.
Edit: Kleines Codebeispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure TForm3.Panel1DragDrop(Sender, Source: TObject; X, Y: Integer); var btn : TButton; pnl : TPanel; begin
btn := TButton(Source); pnl := TPanel(Sender);
btn.Top := pnl.Top; btn.Left := pnl.Left;
end;
procedure TForm3.Panel1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin
accept := (Source = Button1);
end; |
Jens