• Delphi 自定义窗体(最大化、最小化、关闭、窗体的移动)


    Uses ShellAPI;

     1、//最小化
    procedure TForm1.btn1Click(Sender: TObject);
    var
      I, J, X, Y: Word;
    begin
      //第一种:最小化在屏幕的左下角 ,不是常见的最小化
     // WindowState :=   wsMinimized;
      //第儿种:最小化在任务栏里面 ,是常见的最小化
      postmessage(Self.Handle,WM_SYSCOMMAND,SC_MINIMIZE,0);
    end;

    2、//最大化/正常的按钮
    procedure TForm1.btn2Click(Sender: TObject);
    var
      abd: TAppBarData;
    begin
      if WindowState = wsMaximized then
        WindowState := wsNormal
      else
      begin
        WindowState := wsMaximized;  // BorderStyle为 bsNone
        abd.cbSize := sizeof(abd);
        SHAppBarMessage(ABM_GETTASKBARPOS, abd); //读取任务的区域
        Self.Height := Self.Height - (abd.rc.Bottom - abd.rc.Top);  //预留出任务的位置
      end;
    end;

    3、//关闭
    procedure TForm1.btn3Click(Sender: TObject);
    begin
      Close;
    end;

    4、//窗体的移动

    procedure TForm1.lbl1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if Button=Mbleft then
      begin
        ReleaseCapture;
        Perform(WM_NCLBUTTONDOWN,HTCAPTION,0);//消息处理
      end;
    end;

    5、//查找应用程序中已经创建的窗体

    function FindForm(FormName: string): TForm;
    var
      i:Integer;
    begin
      Result := nil;
      for i:=0 to Application.ComponentCount-1 do
      begin
        if Application.Components[i].Name = FormName then
        begin
          Result := TForm(Application.Components[i]);
          Break;     
        end;
      end;
    end;
    ---------------------
    作者:爱在丽江leslex
    来源:CSDN
    原文:https://blog.csdn.net/xiongmao000738/article/details/6790153
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    DOM操作之获取HTML、文本和值
    DOM操作之属性和样式操作
    DOM节点的增删改查
    其他选择器
    属性过滤选择器
    Linux
    Linux
    Appium自动化(3)
    Appium自动化(2)
    Appium自动化(1)
  • 原文地址:https://www.cnblogs.com/jijm123/p/10124758.html
Copyright © 2020-2023  润新知