TForm1.OnCreate
begin
...
InputSpc:=false;//初始化
...
end;
...
TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
s:String;
begin
s:=Trim(Edit1.Text);//将Edit1.Text的头尾两个空格除去。除去头尾两端空格的影响。
if s='' then InputSpc:=false;//没有输入内容。
if Key=SPIC then//如果输入了空格
if not InputSpc then
begin //没有输入过空格
if s<>'' then InputSpc:=true else InputSpc:=false;
end
else
begin
//显示出错信息。
Beep;
Key:=#0;
end;
end;
end;
最好再在OnExit中判断一下。
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['A'..'Z','a'..'z',#32,#8,#13]) then Key:=#0
else if Trim(Edit1.Text)='' then key:=UpCase(key) //如果空就大写
else if (Pos(' ',Edit1.Text)>0) and (key=#32) then key:=#0 //是否已有空格
else if Pos(' ',Edit1.Text)=Length(Edit1.Text) then key:=UpCase(Key) //空格后一个字符
else if (key in ['A'..'Z']) then key:=chr(ord(key)+32); //大写
end;