hallo!
ich möchte ein shape auf der form verschieben. mit drag habe ich das jetzt ungefähr hinbekommen, aber ich will, dass sich das shape unter dem mauszeiger mitbewegt / an ihm verankert ist, und nicht erst bei onmouseup verschoben wird!
muss man dann eventuell mit mousemove arbeiten und nicht mit drag?
mein code für normales drag:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin accept := Source is TShape; end;
procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer); begin if (Sender is TForm) and (Source is TShape) then begin with Sender as TForm do begin shape1.Left := X-25; shape1.Top := Y-25; end; end; end; |
durch die -25 bei den koordinaten wird das shape (quadrat 50*50) in der mitte 'angefasst', und nicht links oben. das würde ich gern auch noch so ändern, dass das shape da angefasst bleibt, wo man mit der maus draufklickt.
bin für jede hilfe dankbar,
mfg aaaaa
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt.
Moderiert von
Tino: Titel geändert.