关于 poScreenCenter 与 poDesktopCenter
主要是窗体水平方向与垂直方向的的 居中问题,由于水平方向 没有什么,所以不探讨。而垂直方向由于底部有个工具栏,工具栏自身有个高度,所以垂直方向的居中问题,需要探讨下。
结论:
poScreenCenter 是以工作区域的高度为根基进行的 垂直居中。由于软件最大化的话也是只能铺满工作区的。所以从视觉上看,这个可能更好些。看着也是窗体再软件区域内居中。
poDesktopCenter 是以整个显示屏的高度(即桌面的高度)为根基(即包括工具栏)进行的垂直居中。

unit Unit5; interface uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type
TForm5 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form5: TForm5; implementation {$R *.dfm} procedure TForm5.Button1Click(Sender: TObject);
begin
Memo1.Lines.Clear;
//Memo1.Lines.Add('全部显示区域width:' + Screen.Width.ToString + sLineBreak);
Memo1.Lines.Add('窗体的高度:' + Self.Height.ToString + sLineBreak);
Memo1.Lines.Add('全部显示区域height:' + Screen.Height.ToString + sLineBreak);
//Memo1.Lines.Add('工作区域width:' + Screen.WorkAreaWidth.ToString + sLineBreak);
Memo1.Lines.Add('工作区域height:' + Screen.WorkAreaHeight.ToString + sLineBreak);
Memo1.Lines.Add('底部工具栏height(全部 - 工作):' + (Screen.Height - Screen.WorkAreaHeight).ToString + sLineBreak); Memo1.Lines.Add('----------------------------' + sLineBreak);
end; procedure TForm5.Button2Click(Sender: TObject);
begin
Self.Position := poScreenCenter;
//Memo1.Lines.Add('窗体left:' + Self.Left.ToString + sLineBreak);
Memo1.Lines.Add('ScreenCenter窗体top:' + Self.Top.ToString + sLineBreak);
end; procedure TForm5.Button3Click(Sender: TObject);
begin
Self.Position := poDesktopCenter;
//Memo1.Lines.Add('窗体left:' + Self.Left.ToString + sLineBreak);
Memo1.Lines.Add('DesktopCenter窗体top:' + Self.Top.ToString + sLineBreak);
end; end.

关于 poScreenCenter 与 poDesktopCenter的更多相关文章
- inno setup介绍及官方网站地址
使 用 笔 记 1.Inno Setup 是什么?Inno Setup 是一个免费的 Windows 安装程序制作软件.第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞 ...
- 在Delphi中开发使用多显示器的应用程序(MonitorCount和DefaultMonitor)
Windows可以将多个显示器映射为虚拟桌面,使我们可以利用这一点设计出方便工作的应用程序.例如PowerPoint就充分发挥了双显示器的优势(大多数的笔记本电脑都支持),它可以在一个显示器上播放幻灯 ...
- Add GUI to connect to SQL
(*********************************************************************************) (* *) (* Below i ...
- Delphi窗体部分属性
Align属性:控制窗体显示时的对齐方式(注:是相对于父窗体的对齐方式.如果该窗体是主窗体则没有父窗体)(与anchor不同在于,anchor定义的对齐是固定到边界的距离) 默认值为alNone.其他 ...
- Inno Setup 使用笔记
使 用 笔 记https://blog.csdn.net/dongshibo12/article/details/79095971 1.Inno Setup 是什么?Inno Setup 是一个免费的 ...
- 在 case 语句中使用字符串-转
http://www.cnblogs.com/del/archive/2008/07/08/1237856.html 非常遗憾 Delphi 的 case 语句不支持字符串, 但我觉得这也可能是基于效 ...
- 一个修改过简化版的InputQuery
主要是觉得在单输入的情况下, 原来InputQuery输入框左边的文本太难看了...... function _InputQuery(const ACaption: string; const APr ...
- 泛型容器单元(Generics.Collections)[3]: TStack<T> 堆栈列表
TQueue 和 TStack, 一个是队列列表, 一个是堆栈列表; 一个是先进先出, 一个是先进后出. TStack 主要有三个方法.一个属性:Push(压栈).Pop(出栈).Peek(查看下一个 ...
- 泛型容器单元(Generics.Collections)[2]: TQueue<T> 队列列表
TQueue 和 TStack, 一个是队列列表, 一个是堆栈列表; 一个是先进先出, 一个是先进后出. TQueue 主要有三个方法.一个属性:Enqueue(入列).Dequeue(出列).Pee ...
随机推荐
- 导入eclipse工程到Android Studio中
ref:从 Eclipse 迁移至 Android Studio | Android Studiohttps://developer.android.com/studio/intro/migrate. ...
- [SCOI2016] 背单词 (Trie树)
$pdf\space solution$ link #include<iostream> #include<algorithm> #include<cstrin ...
- React-Router 动画 Animation
React-Router动画实际上和React动画没什么区别,都是使用 'react-addons-css-transition-group' 这个组件:但是,和普通的 React-Router 的 ...
- ASP.NET MVC 3 常用
http://blog.csdn.net/churujianghu/article/details/7297358 1.ASP.NET MVC 3 如何去除默认验证 这个默认验证是在web.confi ...
- C++调Python示例(转载)
C++调Python,代码粘贴如下: #include <iostream> #include <Python.h> using namespace std; void Hel ...
- 3.CentOS的一些小笔记
1.一般来说,主文件夹都在/home下面,比如登陆的账户为LyndonMario,则我的主文件夹为 /home/LyndonMario. 2.ctrl+space可以调出输入法. 3.CentOS中的 ...
- C++实现两个大整数的相加(考虑到负数异常情况)
实现两个大整数的相加,首先应该排除直接使用int和long long的方法,这些方法很容易溢出,这里为了方便(是否可以使用更精简的结构存储?)采用char来存储整数,整体思路如下: 1. 对于整数n和 ...
- array_multisort 二维数组排序
用PHP自带array_multisort函数排序 <?php $data = array(); $data[] = array('volume' => 67, 'edition' ...
- Excel批量删除换行符_clean函数
http://jingyan.baidu.com/article/e2284b2b489b96e2e6118d30.html CLEAN函数,用于删除文本中不能打印的字符.对从其他应用程序中输入的文本 ...
- Spring MVC处理响应的 header
我们经常需要在HttpResponse中设置一些headers,我们使用Spring MVC框架的时候我们如何给Response设置Header呢? So easy, 看下面的代码: @Request ...