Delphi中的Edit1中如何让从右往左显示和输入
并且如何屏蔽非数字键
并且如何屏蔽非数字键
解决方案 »
- 朋友要我做个这样的东东,应该收多少米米?
- delphi7+access2000这样为什么不可以?那我应该怎么写?
- 关于表的过滤 急 请各位来帮帮我
- 三天内结帖,来者有分!
- 我没有分了,谁作过医院管理系统,能帮一下忙吗
- 为什么用SQL往ACCESS中插数据总是说TABLE IS READ ONLY?
- 如何用delphi来实现对cpu和内存利用率的读取。
- 如何实现CheckListBox中的几个记录的颜色与其它的不同(标识重点项),欢迎改过此控件的高手提供代码,谢谢!
- 如何象memo内容中的","都替换成"."呢,谢谢.
- 不用ODBC,怎样使ADO连接DBF、INTERBASE数据库?
- mapx里的轨迹线的每个点,能否显示标签?
- 时间操作问题
unit RightEdit1;
interfaceuses
Windows,SysUtils, Classes, Controls, StdCtrls;
type
TRightEdit1 = class(TEdit)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
procedure CreateParams(var Params: TCreateParams); override;
published
{ Published declarations }
end;procedure Register;implementationprocedure TRightEdit1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style:=Params.Style or ES_RIGHT or ES_NUMBER ;
end;procedure Register;
begin
RegisterComponents('Samples', [TRightEdit1]);
end;
end.
procedure TForm1.Button1Click(Sender: TObject);
begin
SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_RIGHT);
end;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in['0'..'9']) then key:=#0; //其它控制字符自己过滤
end;
找到Eidt1的BiDiMode属性 设置为 bdRightToLeft就可以了,还有其他两个选项也可以试试
并且如何屏蔽非数字键
楼上的代码
if not(key in['0'..'9']) then key:=#0; 最好改成
if not(key in['0'..'9',#8]) then key:=#0;//#8是退格
要不然就不能用退格键了
procedure CreateParams(var Params: TCreateParams); override;
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
params.ExStyle:=Params.ExStyle+WS_EX_RIGHT;
end;2楼的正确
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in['0'..'9',#8]) then
key:=#0;
end;[
[/code]
var
chargerstyle:integer;
begin
chargerstyle:=GetWindowLong(re.Handle,GWL_STYLE);
chargerstyle:=chargerstyle and(not ES_LEFT)and(not ES_CENTER)or ES_RIGHT;
SetWindowLong(re.Handle,GWL_STYLE,chargerstyle);
end;procedure TFORM.reKeyPress(Sender: TObject; var Key: Char);
begin
if not(key in['0'..'9',#8]) then begin
key:=#0;
end;
end;procedure TFORM.reChange(Sender: TObject);
begin
re.SelStart:=0;
end;