Delphi外观改变不会让我拖动一个无边框窗口

时间:2017-06-27 07:33:50

标签: delphi

更改窗口外观时遇到问题。出于某种原因,我无法拖动无边框窗口。我可以拖动窗户,但我不能抓住角落,使窗户的大小更大。这是一个截图应用程序。

capture window area

 procedure TFrmCapture.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
const
  SC_DRAGMOVE = $F012;
begin
  if Button = mbLeft then
  begin
    ReleaseCapture;
    Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
  end;
end;

procedure TfrmCapture.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_DOWN then
    self.Top := self.Top + 1;
  if Key = VK_UP then
    self.Top := self.Top - 1;
  if key = VK_LEFT then
    self.Left := self.Left - 1;
  if key = VK_RIGHT then
    self.Left := self.Left + 1;

end;

procedure TfrmCapture.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if MouseIsDown then
  begin
    ReleaseCapture;
    Self.Perform(WM_NCLBUTTONDOWN, HTCAPTION, 0);
  end;
end;

procedure TfrmCapture.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  MouseIsDown := False;
end;

procedure TfrmCapture.mnuCaptureClick(Sender: TObject);
begin
  //Set button press
  ButtonPress := 1;
  //Get window rect.
  GetWindowRect(Handle, WindowInfo.wRect);
  //Set left and top form pos.
  WindowInfo.X := Left;
  WindowInfo.Y := Top;
  //Close form.
  Close;
end;

procedure TfrmCapture.mnuCloseClick(Sender: TObject);
begin
  ButtonPress := 0;
  Close;
end;

0 个答案:

没有答案