VCL 中的 Windows API 函数(6): BeginDeferWindowPos
2024-09-09 05:41:36
BeginDeferWindowPos 和 DeferWindowPos、EndDeferWindowPos 是一组一起使用的函数, 可对一组窗口的位置、大小、Z 序等进行调整, 在 ExtCtrls 单元有用到.
下面先用常规方法实现对 Panel1 中的一组 Button 进行调整, 然后再用上面三个函数重新实现.
本例效果图:
代码文件:
下面先用常规方法实现对 Panel1 中的一组 Button 进行调整, 然后再用上面三个函数重新实现.
本例效果图:
代码文件:
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls; type
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.RadioButton1Click(Sender: TObject);
var
num,i: Integer;
btn: TButton;
L,T,W,H: Integer;
begin
num := Panel1.ControlCount; L := ;
T := ;
W := (Panel1.ClientWidth - L * (num+)) div num;
H := (Panel1.ClientHeight - T * (num+)) div num; for i := to num - do
begin
if Panel1.Controls[i] is TButton then
begin
btn := TButton(Panel1.Controls[i]);
btn.Left := L;
btn.Top := (H + T) * i + T;
btn.Width := W;
btn.Height := H;
end;
end;
end; procedure TForm1.RadioButton2Click(Sender: TObject);
var
num,i: Integer;
btn: TButton;
L,T,W,H: Integer;
begin
num := Panel1.ControlCount; L := ;
T := ;
W := (Panel1.ClientWidth - L * (num+)) div num;
H := (Panel1.ClientHeight - T * (num+)) div num; for i := to num - do
begin
if Panel1.Controls[i] is TButton then
begin
btn := TButton(Panel1.Controls[i]);
btn.Left := (W + L) * i + L;
btn.Top := T;
btn.Width := W;
btn.Height := H;
end;
end;
end; end.
最新文章
- AWS多个EIP的解决方案
- C# 得到sqlserver 数据库存储过程,触发器,视图,函数 的定义
- Docker Network containers
- BZOJ2960: 跨平面
- u盘安装windows系统
- 1006 Do the Untwist
- 一起来开发Android的天气软件(三)——使用Volley实现网络通信
- MySQL远程登陆错误
- MINIDVD
- SpringBoot初识(一)
- 【物联网云端对接-4】通过MQTT协议与百度云进行云端通信
- Entity Framework Core 2.0 中使用LIKE 操作符
- Java多线程之线程池详解
- 服务器大量的fin_wait1 状态长时间存在原因分析-1
- JVM垃圾收集器-ParNew收集器
- ubuntu安装苹果Windows以及微软雅黑consolas字体
- mysql 存储过程、循环
- java线程学习之线程创建
- Spring AOP中pointcut expression表达式
- 开源网站流量统计系统Piwik源码分析——后台处理(二)
热门文章
- javascript中字符串与数组互转的方法分享
- [sh]. 点的含义
- 【Android】16.5 Android内置的系统服务
- 【Android】11.5 创建和管理Fragments
- 【Android】10.1 扩展组件库和其他视图--本章示例主界面
- hdoj1241 Oil Deposits
- How-to: Tune Your Apache Spark Jobs (Part 1)
- linux三剑客grep|sed|awk实践
- VC中的树形控件
- ehcache 缓存管理工具