Einzelnen Beitrag anzeigen

Benutzerbild von roga
roga

Registriert seit: 15. Jun 2008
Ort: Sachsen-Anhalt
109 Beiträge
 
Delphi XE8 Professional
 
#16

AW: Komponenten während der Laufzeit verschieben

  Alt 12. Jan 2012, 08:50
Hallo Christof,

ich füge hier mal einige Codeschnipsel aus meiner Komponente ein, vielleicht kannst Du damit etwas anfangen.

Delphi-Quellcode:
// Benötigte Variable
  FDragging: Boolean;

procedure OnMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ...
  // Drag wird begonnen
  FDragging := True;
  ReleaseCapture;
  Perform(WM_SysCommand, $F012, 0);
  // Folgende Zeile ist sehr wichtig! Sonst keine Auslösung
  if Assigned(OnMouseUp) then MouseUp(Button, Shift, X, Y);
end;

procedure OnMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if FDragging then
  begin
    ...
  end;
end;

procedure OnMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if FDragging then
  begin
    // Drag wird beendet
    FDragging := False;
    ...
  end;
end;
DoubleBuffered sollte auch aktiviert werden.

Gruß roga
Ronald
  Mit Zitat antworten Zitat