`
sbabzc
  • 浏览: 38638 次
  • 性别: 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 文本对齐

    在 Delphi 中限制 `TEdit` 只能输入数字是非常简单的,主要通过 `OnKeyPress` 事件实现。下面提供几种不同的方法: 1. **基本方法**: ```pascal if not (Key in ['0'..'9', #8]) then Key := #0; ``` 这段代码...

    Aligning text in TEdit_in_delphi7_

    你可以创建一个TLabel和一个TEdit,将TEdit的`Visible`属性设为`False`,然后把用户输入的文字显示在TLabel上。通过调整TLabel的`Alignment`属性(允许左对齐、居中和右对齐),可以实现文本的对齐效果。同时,当...

    Delphi Mode属性用法举例.rar

    TScrollBox的ScrollBarsMode属性用于控制滚动条的显示,如sbBoth(同时显示水平和垂直滚动条)、sbHorizontal(只显示水平滚动条)等。 以上仅是部分关于Delphi中Mode属性的使用示例,具体应用可能根据开发需求和...

    Delphi 2006教学6

    **Delphi 2006 教学6:Win32组件详解** 在Delphi 2006中,开发Windows应用程序时,我们经常会用到一系列的Win32组件。这些组件是Delphi IDE提供的一套强大的工具,帮助开发者快速构建用户界面。本教程将深入探讨...

    unigui登陆界面美化 (1).rar

    在本文中,我们将深入探讨如何使用Delphi进行Unigui登录界面的美化。Unigui是一个基于VCL和FireMonkey的跨平台UI框架,它允许开发者创建美观且功能丰富的应用程序,包括登录界面。当我们谈论“unigui登陆界面美化”...

    Delphi开发技巧之-VCL

    居中控件 屏蔽在EditBox内按回车键的都都声 强制在TEdit内输入 排序StringGrid 搜索和替换RichEdit中文本 搜索和选定TListBox的项目 改变TDBGrid的DefaultRowHeight 改变TRichEdit内选定文本的背景颜色 改变...

    Delphi数字图像处理

    // 设置居中显示 SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) OR ES_CENTER); Edit1.Invalidate; SetWindowLong(Edit2.Handle, GWL_STYLE, GetWindowLong(Edit2.Handle, ...

    delphi 开发经验技巧宝典源码

    0007 在Delphi中加载QReport报表组件 7 1.3 创建DLL文件 8 0008 生成一个DLL文件 8 0009 调用DLL文件 8 1.4 窗体相关操作 9 0010 将组件置前/置后 9 0011 如何锁定窗体中的组件 9 0012 如何改变窗体...

    delphi 开发经验技巧宝典源码06

    0007 在Delphi中加载QReport报表组件 7 1.3 创建DLL文件 8 0008 生成一个DLL文件 8 0009 调用DLL文件 8 1.4 窗体相关操作 9 0010 将组件置前/置后 9 0011 如何锁定窗体中的组件 9 0012 如何改变窗体...

    DELPHI 编程技巧

    这可以通过监听`TEdit`组件的`OnKeyPress`事件来实现。 **示例代码**: ```pascal procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not(Key in ['0'..'9', #8]) then // #8是...

    TSpinButtor组件的用法,Delphi代码..rar

    除了基础功能,TSpinButton还可以与其他控件配合使用,例如,可以与TEdit、TMemo等控件联动,或者通过设置OnChanging事件实现数值验证,确保用户输入的合法性。 总结一下,TSpinButton是Delphi开发中一个重要的组件...

    iOS User Interface Design with FireMonkey in Delphi XE4

    ### iOS用户界面设计在Delphi XE4中的FireMonkey应用 #### 概述 本文章主要探讨了如何在Delphi XE4环境下利用FireMonkey框架进行iOS应用的用户界面设计。Delphi是一款强大的开发工具,它支持跨平台应用程序的创建。...

Global site tag (gtag.js) - Google Analytics