如上!
解决方案 »
- 特殊字符在网页中与在程序中的表现
- 哪有Tfreport,Tfrxreport,TfrxHTML,TfrxXLSE 控件下载??(急)
- mp3录音控件求助——谢谢指教
- Delphi 2004-08专家榜
- 求RICHVIEW控件的注册版。
- 如何在DELPHI中使控件的大小正确适应窗体(在窗体大小改变的时候)
- FastReport报表打印太慢,不知是何原因?
- 请问那位有现成的数据备份和恢复的文件,我是初学者,请帮忙!我的E-mail:[email protected],在此先谢谢各位了!
- 关于DBGRID中的录入问题
- 挑战高手:10个非同小可实务问题??
- 放分
- 第45题):如何获取当前登陆操作系统的用户名?
procedure TForm1.Button1Click(Sender: TObject);
var
Style: DWORD;
begin
Style := GetWindowLong(Edit1.Handle, GWL_STYLE);
if (Style and ES_CENTER) <> ES_CENTER then
Style := Style + ES_CENTER;
SetWindowLong(Edit1.Handle, GWL_STYLE, Style);
Edit1.Invalidate;end;
内容如下var
dwStyle: DWORD;
begin
dwStyle:= DWORD(GetWindowLong(Edit1.Handle, GWL_STYLE));
dwStyle:= dwStyle or ES_CENTER;
SetWindowLong(Edit1.Handle, GWL_STYLE, dwStyle);
Edit1.Invalidate;
end;
SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_CENTER);
但没有文字居中?
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TKeySet = (ksReturn,ksEscape);
TKeySets = set of TKeySet;
TAdvEdit = class(TEdit)
private
{ Private declarations }
FAlignment: TAlignment;
FKeys: TKeySets;
procedure SetAlignment(const Value: TAlignment);
protected
{ Protected declarations }
procedure CreateParams(var Params: TCreateParams); override;
procedure KeyPress(var Key: Char); override;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property Alignment:TAlignment read FAlignment write SetAlignment default taLeftJustify;
property Keys :TKeySets read FKeys write FKeys;
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('yczyk', [TAdvEdit]);
end;{ TAdvEdit }constructor TAdvEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FAlignment := taLeftJustify;
end;procedure TAdvEdit.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
case Alignment of
taLeftJustify:
Params.Style := Params.Style or (ES_Left or ES_MULTILINE);
taRightJustify:
Params.Style := Params.Style or (ES_Right or ES_MULTILINE);
taCenter:
Params.Style := Params.Style or (ES_Center or ES_MultiLine);
end;
end;destructor TAdvEdit.Destroy;
begin
inherited Destroy;
end;procedure TAdvEdit.KeyPress(var Key: Char);
begin
if ksReturn in keys then
begin
if key=chr(vk_return) then
begin
Key := chr(0);
(owner as TControl).Perform(WM_NextDlgCtl,0,0);
end;
end;
if ksEscape in keys then
begin
if key=chr(vk_escape) then
begin
Key := chr(0);
(owner as TControl).Perform(WM_NextDlgCtl,0,0);
end;
end;
inherited KeyPress(key);
end;procedure TAdvEdit.SetAlignment(const Value: TAlignment);
begin
FAlignment := Value;
end;end.
SetWindowLong(Edit_rkdh.handle,GWL_STYLE,GetWindowlong(edit_rkdh.Handle, GWL_STYLE) +ES_CENTER);
但在98下不好用,只有2000下好用,而且2000要UPdate了才好用,我一直没找到原因!
谁说不可以用?可用!