Delphi运行时拖拉、改变元件大小


本文整理自网络,侵删。

 ??要求在程式?绦?r?要可以拉拖、改?元件大家~
分享一??不?e的函??
procedure   DragResizeControl(WinControl:   TControl;   Shift:   TShiftState;X,   Y,   Precision:   integer);
var
  SC_MANIPULATE:   Word;
begin
  if (X<=Precision) and (Y>Precision)   and   (Y<WinControl.Height-Precision)   then begin
    SC_MANIPULATE     := $F001;
    WinControl.Cursor := crSizeWE;
  end else if   (X>=WinControl.Width-Precision)
             and   (Y>Precision)   and   (Y<WinControl.Height-Precision)   then begin
    SC_MANIPULATE     := $F002;
    WinControl.Cursor := crSizeWE;
  end else if (X>Precision)
             and (X<WinControl.Width-Precision)   and   (Y<=Precision)   then begin
    SC_MANIPULATE     := $F003;
    WinControl.Cursor := crSizeNS;
  end else if (X>Precision)
             and (X<WinControl.Width-Precision)   and   (Y>=WinControl.Height-Precision)   then begin
    SC_MANIPULATE     := $F006;
    WinControl.Cursor := crSizeNS;
  end else if (X<=Precision)   and   (Y<=Precision)   then begin
    SC_MANIPULATE     := $F004;
    WinControl.Cursor := crSizeNWSE;
  end else if (X>=WinControl.Width-Precision)   and   (Y<=Precision)   then begin
    SC_MANIPULATE     := $F005;
    WinControl.Cursor := crSizeNESW   ;
  end else if (X<=Precision)   and   (Y>=WinControl.Height-Precision)   then begin
    SC_MANIPULATE     := $F007;
    WinControl.Cursor := crSizeNESW;
  end else if (X>=WinControl.Width-Precision) and (Y>=WinControl.Height-Precision)   then begin
    SC_MANIPULATE     := $F008;
    WinControl.Cursor := crSizeNWSE;
  end else if (X>5)   and   (Y>5)   and   (X<WinControl.Width-5)
             and (Y<WinControl.Height-5)   then   begin
    SC_MANIPULATE     := $F009;
    WinControl.Cursor := crSizeAll;
  end else begin
    SC_MANIPULATE     := $F000;
    WinControl.Cursor := crDefault;
  end;
 
  if Shift=[ssLeft] then begin
    ReleaseCapture;
    WinControl.Perform(WM_SYSCOMMAND,   SC_MANIPULATE,   0);
  end;
end;
如用方法很??危?在元件的MouseMove?e加上

DragResizeControl((Sender as TWinControl),Shift,X,Y,10);

相关阅读 >>

Delphi 截取被遮挡的window画面

Delphi 读取正在被占用的txt文件

Delphi 几个日期操作

Delphi 链接文件名合并

Delphi中分隔字符串函数的使用

Delphi 在ms access数据库中图像的存储和显示

Delphi integer.tryparse

delhpi如何直接获得webbrowser输入的xml文件

Delphi实现变速齿轮

Delphi中多线程下使用使用 unidac+mssql 需要注意的问题

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...