读书人

怎么使TEdit控件显示内容靠右显示

发布时间: 2012-03-03 15:33:03 作者: rapoo

如何使TEdit控件显示内容靠右显示?
如何使TEdit控件显示内容靠右显示?

[解决办法]
在你的程序中替换掉TEdit,如下:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TEdit = class(StdCtrls.TEdit)
private
FAlignment : TAlignment;
procedure SetAlignment(Value: TAlignment);
protected
procedure CreateParams(var Params: TCreateParams); override;
public
property Alignment: TAlignment read FAlignment write SetAlignment;
end;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TEdit.CreateParams(var Params: TCreateParams);
const
Alignments : array[TAlignment] of LongWord= (ES_Left,ES_Right, ES_Center);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or Alignments[FAlignment];
end;

procedure TEdit.SetAlignment(Value: TAlignment);
begin
if FAlignment <> Value then
begin
FAlignment := Value;
RecreateWnd;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Alignment := taRightJustify;
end;

end.
[解决办法]
当然也可以自已用createwindowex建一个
var
hEdt : Thandle;
begin
hEdt := CreateWindowEx(WS_EX_CLIENTEDGE, 'Edit ', 'Edit1 ',WS_CHILD or ES_RIGHT,100,100,
100,20,Self.handle,0,hInstance,0);
ShowWindow(hEdt,sw_normal);
end;
[解决办法]
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TMyEdit = class(Tedit) //继承Tedit
procedure CreateParams(var Params: TCreateParams); override;//重载
end;

var
Form1: TForm1;

implementation

{$R *.dfm}


{ TMyEdit }

procedure TMyEdit.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style:=Params.Style or ES_RIGHT;

end;

procedure TForm1.Button1Click(Sender: TObject);
var
edit1 : TmyEdit;
begin
edit1 := TmyEdit.Create(self);//生在派生类的实例
Edit1.Parent:=Form1;//使edit1可以在窗体上看见
//以下定位出现的坐标
Edit1.Left:=100;
Edit1.Top:=100;
Edit1.Width:=100;
edit1.Text := 'OK ';//添加显示内容

end;

end.

读书人网 >.NET

热点推荐