这样会不好使?
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in['*']) then
   showmessage('asd');
end;

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if Key = '*' then
     a:=0
    else
     a:=1;
    end;
      

  2.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if not (key in [#aaa]) then//aaa为获得shift+8的ascii码值
     a:=0
    else
     a:=1;
    end;
    //这样行吗?
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if pos('*',Edit1.text)=0 then
     a:=0
    else
     a:=1;
    end;
      

  3.   

    if not (key in ['*']) then
     a:=0
    else
     a:=1;
    这样作法,只能判断当前输入字符是否为'*',而不能判断EDIT输入框中是否有'*'你可以这样判断
    if (Key = '*') or (Pos('*', TEdit(Sender).text) <> 0) then
      a := 1
    else
      a := 0;
      

  4.   

    如果在Edit1KeyPress中判断,那ctrl-v上去的怎么办??
    还是在onchange里判断吧,用pos
      

  5.   

    zhangpeigao(zhangpeigao) 
    第一个出现错误:constant expression expected
    第二个在试....
      

  6.   

    建议回车时作判断
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key <> #13 then Exit;
      a := 0;
      if Pos('*',Edit1.Text)>0 then
      a := 1;
    end;
      

  7.   

    sunny_hs(锡城若寒) 用yansea(思宏) 的办法肯定行的。
    在edit1的onchange事件
    begin
    if pos('*',Edit1.text)=0 then
     a:=0
    else
     a:=1;
    end;
      

  8.   

    好了,yansea(思宏) 的和 liujc(阿聪) 的都运行成功了,多谢各位高手