Einzelnen Beitrag anzeigen

Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Komponente vertikal verschieben

  Alt 10. Apr 2007, 19:49
Verschiebt man den BitBtn schnell, kann er schonmal an einer Stelle hängen bleiben. Das wird im folgenden abgefangen.

Delphi-Quellcode:
procedure TForm1.BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Sender is TBitBtn then
    TBitBtn(Sender).Tag := Y;
end;

procedure TForm1.BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  NewPos: integer;
const
  MinTop = 10;
  MaxTop = 300;
begin
  if Sender is TBitBtn then
    if ssLeft in Shift then
    begin
      NewPos:= TBitBtn(Sender).Top + Y - TBitBtn(Sender).Tag;

      if (NewPos < MinTop) then
        TBitBtn(Sender).Top := MinTop
      else if (NewPos > MaxTop) then
        TBitBtn(Sender).Top := MaxTop
      else
        TBitBtn(Sender).Top := NewPos;
    end;
end;
Gruß,
Guido.
  Mit Zitat antworten Zitat