Delphi7如何实现让Tedit显示文字垂直居中(上下居中)
2017-11-18 14:08
288 查看
通过下面的组件,可以在输入文字的时候自动垂直居中
直接把下面代码保存到Unit1.pas即可
------------------------------------------
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TEdit = class(StdCtrls.TEdit) protected procedure CreateParams(var Params: TCreateParams); override; procedure KeyPress(var Key: Char); override; procedure WMSize(var msg: TWMSize);message WM_SIZE; procedure SetParent(AParent: TWinControl);override; procedure SetCenter; end; TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } Edt: TEdit; end; var Form1: TForm1; implementation {$R *.dfm} { TEdit } procedure TForm1.FormCreate(Sender: TObject); begin Edt := TEdit.Create(self); Edt.Parent := self; Edt.AutoSize := False; Edt.Height := 50; end; procedure TEdit.CreateParams(var Params: TCreateParams); begin inherited; Params.Style := Params.Style or ES_MULTILINE; end; procedure TEdit.KeyPress(var Key: Char); begin inherited; if Key = #13 then key := #0; end; procedure TEdit.WMSize(var msg: TWMSize); begin inherited; SetCenter; end; procedure TEdit.SetParent(AParent: TWinControl); begin inherited; if Parent <> nil then begin SetCenter; end; end; procedure TEdit.SetCenter; var DC: HDC; SaveFont: HFont; Sin: Integer; SysMetrics, Metrics: TTextMetric; Rct: TRect; begin DC := GetDC(0); GetTextMetrics(DC, SysMetrics); SaveFont := SelectObject(DC, Font.Handle); GetTextMetrics(DC, Metrics); SelectObject(DC, SaveFont); ReleaseDC(0, DC); if Ctl3D then Sin := 8 else Sin := 6; Rct := ClientRect; Sin := Height - Metrics.tmHeight - Sin; Rct.Top := Sin div 2; SendMessage(Handle, EM_SETRECT, 0, Integer(@Rct)); end; end.
当这个保存成unit1.pas 后,然后通过delphi组件安装功能来安装组件,具体安装方法可以到网上查方法
相关文章推荐
- 如何设置图片、文字在容器(div)中垂直居中的显示?
- 小技巧:用CSS如何实现单行图片与文字垂直居中
- 在一个div内,动态添加一段文字,如何设置为不管内容多少都以 上下垂直居中 的形式展现?
- 摘抄:CSS如何实现单行图片与文字垂直居中
- 如何设置一个textview的文字显示为垂直居中,水平居左呢
- CSS实现文字竖排 DIV CSS文字垂直竖列排版显示如何实现?
- Css 中单行及多行文字如何实现水平垂直居中?
- CSS实现新闻标题,一行文字垂直居中,两行文字超出显示省略号
- 如何实现多行文字垂直居中
- 如何设置图片、文字在容器(div)中垂直居中的显示?
- 使用setImageEdgeInSet和setTitleEdgeInSet让按钮的图片和文字垂直居中上下显示
- ios 开发中,如何设置 uitabbar 里面 tabbaritem 不显示文字,只显示图片,图片垂直居中?
- 用CSS如何实现单行图片与文字垂直居中
- 小技巧:用CSS如何实现单行图片与文字垂直居中
- 实现Div层里的文字垂直居中的方法
- 如何让span中的文字垂直居中
- css实现文字垂直居中的代码第1/2页
- Android中TextView如何让文字垂直显示
- Android UI如何让TextView中的文字居中显示
- 用CSS实现文字垂直居中的代码