关于在Edit中输入的问题(100分)

  • 主题发起人 赤狼风云
  • 开始时间

赤狼风云

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在Edit中按下'*'键时,显示数学运算符×(不是字母X),要如何实现,
请提供代码,谢谢!
 
在OnKeyPass中判断是不是*
如果是则把*吃了,再自己加上个×
 
没试,不知道行不行
procedure TFrame1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#42 then
edit1.text:=edit1.text+'X';
end;

再改一下,先吃掉打出来的*号,上边'X'改成'×'
 
在Edit的OnKeypress事件中:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var s:String;
begin
s:='×';
if key='*' then
begin
key:=#0;
Edit1.Text:=Edit1.Text+s;
Edit1.SelStart:=length(Edit1.Text);
end;
end;
 
'×'是双字节的, 以上处理恐不妥

procedure TForm1.Edit1Change(Sender: TObject);
var
s:string;
begin
s:=(Sender as TEdit).text;
if copy(s,length(s),1)='*' then
begin
s:=copy(s,1,length(s)-1)+'×';
end;
(Sender as TEdit).Text:=s;
(Sender as TEdit).SelStart:=length(s);
end;
 
嘿嘿,上面的,如果用户在中间输入*不就不行了?所以还是要多做一些处理。
 
那倒是,那倒是,
仅仅提供思路...
 
多人接受答案了。
 
顶部