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
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.
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;
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.