`
sbabzc
  • 浏览: 36091 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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

阅读更多


通过下面的组件,可以在输入文字的时候自动垂直居中
直接把下面代码保存到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);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
     Edt: TEdit;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{ TEdit }

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  //if Key = #13 then
  //  ShowMessage('输入了回车键');
end;

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组件安装功能来安装组件,具体安装方法可以到网上查方法



转至:http://bbs.2ccc.com/topic.asp?topicid=419284




本文地址:http://www.xszlo.com/article/2012-12-22/7648.html,转发请保留这个地址,谢谢
分享到:
评论

相关推荐

    调整 TEdit 文本对齐

    调整 TEdit 文本对齐,限制Edit只能输入数字或其它字符

    delphi Tedit过滤

    delphi过滤TEdit的输入内容 delphi过滤TEdit的输入内容

    自己封装的delphi的Tedit类

    改进后的EDIT类型控件,继承自TEDIT类 新加属性:  MAXLENGTH:最大长度,为“0”时不限制 DIGITS:小数位数,当VALUETYPE设为XgDouble时有效 VALUETYPE:输入限制类型 XgNormal:正常,不...

    只允许输入数字的Tedit组件Delphi用法..rar

    只允许输入数字的Tedit组件Delphi用法..rar

    Delphi组件编程 我用TImage作了一个Edit,即:把TImage变成TEdit

    在文本框的下面是一个新的TEdit,可以在其中输入文字,这个新的文本框是用图像控件制作的。 核心技术:Edit特效,EditBmp(),SetBounds(),LoadFromFile(),mbleft=button Google搜索:TEdit with background graphic, ...

    Delphi7.完美经典

    3-7 编译信息的显示 3-8 调试器方面的改进 3-8-1 Watch List改进 3-8-2 Debugger选项的改进 3-8-3 Run Parameters对话框的改进 第4章 Delphi Object Pascal的初步印象 4-1 面向对象程序概论 4-1-1 类 4-1-...

    Delphi消除在TEdit控件中按下回车键时的声音.rar

    Delphi消除在TEdit控件中按下回车键时的声音,默认情况下是有声音的,本程序会去掉这种操作音,变得很沉静。

    delphi获取控件句柄,并获取属性源码

    Delphi获取鼠标指定的空间的句柄,并获取控件的类名和属性值。鼠标拖动点击的特效,非常实用,功能简单,自己开发勿喷。

    Delphi7 VCL继承关系全图

    Delphi7 VCL继承关系全图

    DelphiXE7取代默认的ActionList编辑器。

    DelphiXE7取代默认的ActionList编辑器。其他XE版本应该可以用。Delphi5或7需要修改代码。 默认的编辑器只能看到Action的名称,不能看到标题,因此做了这个编辑器。 增加了以下功能: 1、ListView显示Action的标题,...

    delphi项目输入法清除工具

    项目中以前象TEdit这样的控件不小心输入法变成了中文,由于有很多,所以写个工具来自动删除项目中的输入法,生成以后会在原有基础上生成一个备份文件_bak,确认删除成功以后可以批量搜索*.dfm_bak文件删除掉即可:)

    Delphi 7 新概念百例

    《Delphi 7 新概念百例》是一本通过讲解Delphi实例,来说明使用Delphi编程时通常采用的编程思路以及具体方法的计算机书籍。通过对每个实例从编程思路和代码实现的详细分析和讲解,力求带领读者快速地提高自己的程序...

    Delphi为TEdit控件添加列表选择框

    Delphi为TEdit控件添加列表选择框,Delphi基础知识例子,在一个供录入的表单中,添加一个下拉框,让用户通过选择下拉框的内容完成输入,可提升软件操作体验,下拉列表框中的数据还可以从数据库读取出来显示。...

    Delphi7.完美经典.part1

    7-7-1 一般纯虚函数的多态实现概念 7-7-2 纯虚函数的定义语法及实现 7-8 Self、AS、is、Sender、Parent、owner、inerited 7-8-1 Self变量 7-8-2 AS运算符 7-8-3 is运算符 7-8-4 Sender ...

    Delphi ListBox模拟百度搜索下拉框提示效果.rar

    如果你对Delphi中的ListBox控件用法不熟悉,那么本示例会是一个很不错的用法范例,在代码部分,还演示了结合数据库来读取数据交显示到ListBox中的方法。一些ListBox用法代码:  if ListBox.ItemIndex&gt;-1 then  ...

    Aligning text in TEdit_in_delphi7_

    How to set allignment in textbox component

    matlab开发-TEDIT

    matlab开发-TEDIT。tedit使用模板创建m文件。

    Delphi修改windows7系统时间.rar

    修改系统时间_Delphi修改windows7系统时间的开源源码,按照提示输入新的时间,点击“修改”按钮后即可改变windows当前时间,主要是学习delphi7和windows之间的时间接口,如何操作等。相关代码如下:  For i := 0 to...

    Android代码-TEdit

    TEdit TEdit is a simple text editor for Android devices. TEdit includes a graphical file browser to make locating existing files and saving new files easy. Additionally TEdit enables you to keep ...

Global site tag (gtag.js) - Google Analytics