Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Alle Komponenten auf einem Panel bewegen

  Alt 13. Jun 2012, 11:54
AFAIK kann nur ein Control "gecaptured" sein
Delphi-Quellcode:
  private
    { Private-Deklarationen }
    FX,FY:Integer;
  public
    { Public-Deklarationen }
  end;

var
  Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.Panel2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  FX := X;
  FY := Y;
end;

procedure TForm5.Panel2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
 i:Integer;
 p:TPanel;
begin
  if ssLeft in Shift then
    begin
       p := TPanel(TPanel(Sender).Parent);
       for I := 0 to p.controlcount - 1 do
          begin
            if p.controls[i] is TPanel then
                 with Tpanel(p.controls[i]) do
                  begin
                    Left := Left + X - FX;
                    Top := Top + Y - FY;
                  end;

          end;
    end;
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat