怎么在Edit里键入字母时候自动转化成大写的?(20分)

  • 主题发起人 主题发起人 SevenOrient
  • 开始时间 开始时间
S

SevenOrient

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么在Edit里键入字母时候自动转化成大写的?
 
Edit的KeyPress事件中
if key in ['a'..'z'] then
Key := Chr(Ord(Key)-32);
end;

或者:把Edit的CharCase属性设为ecUpperCase
 
在keypress里加入:
key:=upcase(key);
 
tedit有属性
ecUpperCase
 
谢谢,不好意思,还有个问题:
怎么给一个String,赋值N个subString呢?用什么函数?
String:=subString+subString+subString.......
 
設置TEdit的CharCase屬性:其中有三個參數可選,選中ecUpperCase即可
 
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
Found: boolean;
i,SelSt: Integer;
TmpStr: string;
begin
if Key in ['a'..'z'] then Dec(Key,32);
with (Sender as TEdit) do
begin
SelSt := SelStart;
if (Key = Chr(vk_Back)) and (SelLength <> 0) then
TmpStr := Copy(Text,1,SelStart)+Copy(Text,SelLength+SelStart+1,255)
else if Key = Chr(vk_Back) then {SelLength = 0}
TmpStr := Copy(Text,1,SelStart-1)+Copy(Text,SelStart+1,255)
else {Key in ['A'..'Z', etc]}
TmpStr := Copy(Text,1,SelStart)+Key+Copy(Text,SelLength+SelStart+1,255);
if TmpStr = '' then Exit;
{ update SelSt to the current insertion point }
if (Key = Chr(vk_Back)) and (SelSt > 0) then Dec(SelSt)
else if Key <> Chr(vk_Back) then Inc(SelSt);
Key := #0; { indicate that key was handled }
if SelSt = 0 then
begin
Text:= '';
Exit;
end;
end;

实际上就是Delphi中的帮助。
 
多人接受答案了。
 
后退
顶部