主要是窗体水平方向与垂直方向的的 居中问题,由于水平方向 没有什么,所以不探讨。而垂直方向由于底部有个工具栏,工具栏自身有个高度,所以垂直方向的居中问题,需要探讨下。

结论:

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的更多相关文章

  1. inno setup介绍及官方网站地址

    使 用 笔 记 1.Inno Setup 是什么?Inno Setup 是一个免费的 Windows 安装程序制作软件.第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞 ...

  2. 在Delphi中开发使用多显示器的应用程序(MonitorCount和DefaultMonitor)

    Windows可以将多个显示器映射为虚拟桌面,使我们可以利用这一点设计出方便工作的应用程序.例如PowerPoint就充分发挥了双显示器的优势(大多数的笔记本电脑都支持),它可以在一个显示器上播放幻灯 ...

  3. Add GUI to connect to SQL

    (*********************************************************************************) (* *) (* Below i ...

  4. Delphi窗体部分属性

    Align属性:控制窗体显示时的对齐方式(注:是相对于父窗体的对齐方式.如果该窗体是主窗体则没有父窗体)(与anchor不同在于,anchor定义的对齐是固定到边界的距离) 默认值为alNone.其他 ...

  5. Inno Setup 使用笔记

    使 用 笔 记https://blog.csdn.net/dongshibo12/article/details/79095971 1.Inno Setup 是什么?Inno Setup 是一个免费的 ...

  6. 在 case 语句中使用字符串-转

    http://www.cnblogs.com/del/archive/2008/07/08/1237856.html 非常遗憾 Delphi 的 case 语句不支持字符串, 但我觉得这也可能是基于效 ...

  7. 一个修改过简化版的InputQuery

    主要是觉得在单输入的情况下, 原来InputQuery输入框左边的文本太难看了...... function _InputQuery(const ACaption: string; const APr ...

  8. 泛型容器单元(Generics.Collections)[3]: TStack<T> 堆栈列表

    TQueue 和 TStack, 一个是队列列表, 一个是堆栈列表; 一个是先进先出, 一个是先进后出. TStack 主要有三个方法.一个属性:Push(压栈).Pop(出栈).Peek(查看下一个 ...

  9. 泛型容器单元(Generics.Collections)[2]: TQueue<T> 队列列表

    TQueue 和 TStack, 一个是队列列表, 一个是堆栈列表; 一个是先进先出, 一个是先进后出. TQueue 主要有三个方法.一个属性:Enqueue(入列).Dequeue(出列).Pee ...

随机推荐

  1. Windows + Ubuntu下JDK与adb/android环境变量配置完整教程

    假设JDK和android sdk路径分别如下: D:\Program Files\Java\jdkD:\android-sdk 1.JDK环境变量配置JAVA_HOME=D:\Program Fil ...

  2. INSTALL_FAILED_TEST_ONLY: installPackageLI. 问题解决

    FAQ: Installation failed with message Failed to finalize session : INSTALL_FAILED_TEST_ONLY: install ...

  3. 解题:洛谷2633 Count on a tree

    题面 在树上建主席树...... 每个点从父亲那里建过来,最后建出来就是从根到$i$这条链上的主席树,查询的时候一边差分一边查询 ($cmt[u]+cmt[v]-cmt[lca(u,v)]-cmt[a ...

  4. NTT+多项式求逆

    #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #i ...

  5. POJ 1966 Cable TV Network 【经典最小割问题】

    Description n个点的无向图,问最少删掉几个点,使得图不连通 n<=50 m也许可以到完全图? Solution 最少,割点,不连通,可以想到最小割. 发现,图不连通,必然存在两个点不 ...

  6. JAVA中的File.separate(跨平台路径)

    转: JAVA中的File.separate(跨平台路径) 2016年03月27日 23:33:50 才不是本人 阅读数:1952   在Windows下的路径分隔符和Linux下的路径分隔符是不一样 ...

  7. UIScrollview 与 Autolayout 的那点事

    原文  http://www.cocoachina.com/ios/20151221/14757.html 前言 自从写了 介绍Masonry 那篇文章以后 就一直有人对UIScrollView的那个 ...

  8. tp5.1 高级查询之 表里2字段比较大小

    $map = [ 'status' => 1, 'is_show' => 1,]; $result = Db::name('coupon') ->where($map) ->w ...

  9. NATS_10:NATS服务配置文件详解

    尽管NATS可以无配置的运行,但也可以使用配置文件配置NATS服务的启动,在实际应用当中,一般都是通过使用配置文件来启动服务的. 1. 配置项包括 客户端监听器端口 Client listening ...

  10. P2424 约数和 && 真丶除法分块

    P2424 约数和 题目背景 Smart最近沉迷于对约数的研究中. 题目描述 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f ...