首页 > 其他分享 >Delphi 自定义窗体(最大化、最小化、关闭、窗体的移动)

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

时间:2024-10-15 15:25:11浏览次数:1  
标签:begin end 自定义 Delphi TForm1 窗体 最小化 abd

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;
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/xiongmao000738/article/details/6790153

标签:begin,end,自定义,Delphi,TForm1,窗体,最小化,abd
From: https://www.cnblogs.com/newbiesoft/p/18467562

相关文章

  • 自定义线程池的使用
    现在有一个使用多线程进行调优的案例:模拟使用多线程并发处理数据。1.自定义一个线程池//自定义一个线程池classThreadPoolManger{privatefinalThreadPoolExecutorexecutor;privatefinalAtomicBooleanisShutdown;/***构造方法,用于初始化线程......
  • Ribbon-Loadbalancer自定义负载均衡策略:本地优先+偏向服务器优先
    Ribbon核心顶层抽象packagecom.netflix.loadbalancer;publicinterfaceIRule{Serverchoose(Objectvar1);voidsetLoadBalancer(ILoadBalancervar1);ILoadBalancergetLoadBalancer();}继承IRule实现choose方法默认实现我们这里说明现有的集......
  • VsCode 如何自定义代码片段(Code Snippet)
    前言在现代前端开发中,提高工作效率是每个开发者的追求。VisualStudioCode(Vscode)作为一款强大的代码编辑器,提供了许多让开发者高效编程的功能,其中自定义代码片段(CodeSnippet)便是一个重要的工具。通过自定义代码片段,你可以快速插入常用的代码模板,大幅减少重复工作量。本......
  • HTML DOM 教程---操作自定义属性(2)
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=d......
  • 任务类型和字段自定义,支撑个性化业务管理
    一句话介绍任务类型和任务字段自定义,面向企业内部不同业务部门,在管理各自任务的时候有不同信息管理差异的场景。企业根据自己的任务管理需求,自定义任务类型,配置不同的任务字段,解决差异化的任务管理场景。应用场景某互联网企业,企业内部有研发部,有销售部研发部通常需要管理以下......
  • Bison遇到冲突的默认行为&用户自定义优先级
    Bison遇到冲突的默认行为&用户自定义优先级在使用Bison进行语法分析时,如果在语法规则中存在冲突,Bison会根据默认的优先级和结合性规则进行决策,选择某个特定的行为来解决冲突。Bison中常见的冲突主要包括两类:移入-规约冲突(shift-reduceconflict)规约-规约冲突(reduce-reduce......
  • 【vue+printJs】前端打印, 自定义字体大小, 自定义样式, 封装共享样式
    效果示例思维导图目录1,基本使用1,依赖下载2,页面导入3,修改字体大小(可行但不推荐)2,自定义样式,字体大小1,修改字体大小(推荐)2,自定义样式3,封装共享样式3,去除页面页脚内容4,测试案例demo,直接cv可用5,print-js的其他参数说明1,基本使用1,依......
  • C语言——自定义类型
    目录一、结构体        1、结构体的定义与声明        2、结构体变量的定义和初始化        3、结构体的自引用         4、结构体的内存对齐         5、为什么要结构体的内存对齐                1、性能......
  • [java/spring/web] 深入理解:Spring @ExceptionHandler => 自定义应用异常处理器(Appli
    1概述:Spring@ExceptionHandler∈spring-web作用ExceptionHandler是Spring框架(spring-web模块)提供的一个注解,用于处理应用程序中的异常。当应用程序中发生异常时,ExceptionHandler将优先地拦截异常并处理它,然后将处理结果返回到前端。该注解可用于类级别和方法级别,以......
  • 在 LaTeX 中,默认的 `enumerate` 环境会输出 “1. 2. 3.“ 这样的编号。如果你想将编号
    在LaTeX中,默认的enumerate环境会输出“1.2.3.”这样的编号。如果你想将编号格式改为(1)(2)(3)这种样式,你可以通过enumerate包进行自定义。在导言区导入enumerate包:\usepackage{enumerate}在enumerate环境中使用\renewcommand来自定义编号格式为带括号的样式......