• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi7如何实现让Tedit显示文字垂直居中(上下居中)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

通过下面的组件,可以在输入文字的时候自动垂直居中 
直接把下面代码保存到Unit1.pas即可
------------------------------------------

 1 unit Unit1;
 2 
 3 interface
 4 
 5 uses
 6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 7   Dialogs, StdCtrls;
 8 
 9 type
10   TEdit = class(StdCtrls.TEdit)
11   protected
12     procedure CreateParams(var Params: TCreateParams); override;
13     procedure KeyPress(var Key: Char); override;
14     procedure WMSize(var msg: TWMSize);message WM_SIZE;
15     procedure SetParent(AParent: TWinControl);override;
16     procedure SetCenter;
17   end;
18   TForm1 = class(TForm)
19     Button1: TButton;
20     Edit1: TEdit;
21     procedure FormCreate(Sender: TObject);
22   private
23     { Private declarations }
24   public
25     { Public declarations }
26      Edt: TEdit;
27   end;
28 
29 var
30   Form1: TForm1;
31 
32 implementation
33 
34 {$R *.dfm}
35 { TEdit }
36 
37 procedure TForm1.FormCreate(Sender: TObject);
38 begin
39   Edt := TEdit.Create(self);
40   Edt.Parent := self;
41   Edt.AutoSize := False;
42   Edt.Height := 50;
43 end;
44 
45 procedure TEdit.CreateParams(var Params: TCreateParams);
46 begin
47   inherited;
48   Params.Style := Params.Style or ES_MULTILINE;
49 end;
50 
51 procedure TEdit.KeyPress(var Key: Char);
52 begin
53   inherited;
54   if Key = #13 then
55     key := #0;
56 end;
57 
58 procedure TEdit.WMSize(var msg: TWMSize);
59 begin
60   inherited;
61   SetCenter;
62 end;
63 
64 procedure TEdit.SetParent(AParent: TWinControl);
65 begin
66   inherited;
67   if Parent <> nil then
68   begin
69     SetCenter;
70   end;
71 end;
72 
73 procedure TEdit.SetCenter;
74 var
75 DC: HDC;
76 SaveFont: HFont;
77 Sin: Integer;
78 SysMetrics, Metrics: TTextMetric;
79 Rct: TRect;
80 begin
81 DC := GetDC(0);
82 GetTextMetrics(DC, SysMetrics);
83 SaveFont := SelectObject(DC, Font.Handle);
84 GetTextMetrics(DC, Metrics);
85 SelectObject(DC, SaveFont);
86 ReleaseDC(0, DC);
87 if Ctl3D then Sin := 8 else Sin := 6;
88 Rct := ClientRect;
89 Sin := Height - Metrics.tmHeight - Sin;
90 Rct.Top := Sin div 2;
91 SendMessage(Handle, EM_SETRECT, 0, Integer(@Rct));
92 end;
93 
94 
95 
96 
97 end.

 




当这个保存成unit1.pas 后,然后通过delphi组件安装功能来安装组件,具体安装方法可以到网上查方法


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[转]Delphi执行CMD命令发布时间:2022-07-18
下一篇:
Delphi7启动后提示Unabletorenamedelphi32.dro的解决办法发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap