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 主窗体最小化时不显示在任务栏

Delphi一句话获取本机ip

Delphi tstringlist.find

Delphi版本qq木马

Delphi用邻域平均法对图像进行平滑处理

Delphi 获取系统内存状态

incyear:将一个tdatetime变量加减一定数量的年数

Delphi firedac 下的 sqlite [10] - 使用 r-tree 搜索

Delphi 实现卸载windows应用程序(类似360软件管家-卸载程序)

Delphi 获取 access 数据库所有表

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



打赏

取消

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

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

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

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

评论

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