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

schcm 2007-08-02 01:43:26
如何使TEdit控件显示内容靠右显示?
...全文
217 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengxuan 2007-08-02
  • 打赏
  • 举报
回复
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.
iuIRCClient 2007-08-02
  • 打赏
  • 举报
回复
不是有text align属性么
brightyang 2007-08-02
  • 打赏
  • 举报
回复
当然也可以自已用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;
brightyang 2007-08-02
  • 打赏
  • 举报
回复
在你的程序中替换掉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.

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧