我想知道怎样使Edit控件内的内容不滚动(100分)

  • 主题发起人 主题发起人 xxxxxxxx
  • 开始时间 开始时间
X

xxxxxxxx

Unregistered / Unconfirmed
GUEST, unregistred user!
我想知道怎样使Edit控件内的内容不滚动,也就是说Edit多长,显示的内容就只有多长(因为我输入很多内容的时候,edit 会将内容左移,我现在不想让它
左移,当我输入到本世纪末edit框右边时,就输入不进了)
 
你可以指定TEdit.MaxLength属性,
限制输入的字符数量,
然后TEdit的宽度设置到足够大,
就可以了
 
procedure TForm1.Button3Click(Sender: TObject);
begin
SendMessage(edit1.handle,em_limittext,10,0);
end;
 
李颖同志 说的没错。
 
我不要用TEdit.MaxLength ,这我知道,我现在用的是柬文(cambodia)
他的一个字很有可能是3个字符,我用Maxlength不好控制,我想当它输入
到右边界时就输入不进去了!
 
我不要用TEdit.MaxLength ,这我知道,我现在用的是柬文(cambodia)
他的一个字很有可能是3个字符,我用Maxlength不好控制,我想当它输入
到右边界时就输入不进去了!

 
那就在OnKeyPress里写代码
var
Str:WideString;
begin
Str:=Edit1.Text; //用WideString来处理
if Length(Str)>xxxx then //如果长度到达上限
Key:=#0; //屏蔽掉
end;
 
设置一词法检查,待认为是一个“柬”字且在右边界时,动态设置MaxLength的数值。
 
可以用TEXTWIDTH来满足你的要求,它可以得到字符串的宽度,
与EDIT的宽度比较一下就可以了。

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if edit1.width<=form1.canvas.textwidth(edit1.text)
then
ShowMessage('输入串太长了!');
end;
 
我也是用 TEdit.MaxLength 这个属性的。
 
李颖的方法最好,给个最佳伯乐奖兼最佳拍...奖吧.
hubdog一把鼻涕一把泪地说道:老爷太太行行好,给两根骨头吧。
 
no.

yck的办法才能够真正解决问题.

文本的length和edit的width没有关系吧? 除非是等宽字体,否则通过文本的
length根本不能判断是否达到edit的width.
只有通过textwidth这个函数才有效.
 
对yck的方法最好。
hubdog一把鼻涕一把泪地说道:我是墙头草,那里风大那里倒。
 
hubdog你真逗. :-)
 
>begin
> if edit1.width<=form1.canvas.textwidth(edit1.text)

假如edit1的font与form1的font不一致怎么办?
 
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
cRect : TRect;
bm : TBitmap;
begin
if ((Ord(Key) <> VK_TAB) and
(Ord(Key) <> VK_RETURN) and
(Ord(Key) <> VK_LEFT) and
(Ord(Key) <> VK_BACK)) then begin
Windows.GetClientRect(Edit1.Handle, cRect);
bm := TBitmap.Create;
bm.Width := cRect.Right;
bm.Height := cRect.Bottom;
bm.Canvas.Font := Edit1.Font;
if bm.Canvas.TextWidth(Edit1.Text + Key) > CRect.Right then begin
Key := #0;
MessageBeep(-1);
end;
bm.Free;
end;
end;
 
DC := GetDC (Edit1.Handle);
TempCanvas := TCanvas.Create;
TempCanvas.Handle := DC;
.......
TempCanvas.Free;
ReleaseDC (Edit1.Handle, DC);

 
hubdog very good 其她的都是废话!
 
后退
顶部