Einzelnen Beitrag anzeigen

Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#3

Re: Komponenten zur Laufzeit im Raster verschieben

  Alt 22. Mär 2008, 15:38
Hallo,

ich meine das eher so wie man das auch in der Delphi IDE machen kann.

hier mein code, den ich so aus dem Internet übernommen habe (von den Schweizern):

und da will ich jetzt sowas einbauen, dass ich die Komponenten nicht pixelweise verschiebe, sondern immer gleich um 8 Pixel. Wie in Delphi halt auch.

Delphi-Quellcode:
type
  TMoveCracker = class(TControl);

procedure TForm1.ControlMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  FDownX := X;
  FDownY := Y;
  FDragging := True;
  TMoveCracker(Sender).MouseCapture := True;
end;

procedure TForm1.ControlMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if FDragging then
    with Sender as TControl do
    begin
      Left := X - FDownX + Left;
      Top := Y - FDownY + Top;
    end;
end;

procedure TForm1.ControlMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if FDragging then
  begin
    FDragging := False;
    TMoveCracker(Sender).MouseCapture := False;
  end;
end;
  Mit Zitat antworten Zitat