要求在向文本框中输入每一个字符时,文本框立即对此进行判断和操作:即标签中立即获得此字符,并且大写字母变成小写,反之亦然,其它字符皆变成*,注意:当用鼠标点击向文本框中插入字符时,标签中也能获得正确结果。

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if (ord(Key)>=97)and(ord(Key)<=122) then
        Label1.Caption:=Label1.Caption+UpperCase(Key)
      else if (ord(Key)>=65)and(ord(Key)<=90) then
        Label1.Caption:=Label1.Caption+LowerCase(Key)
      else
        Label1.Caption:=Label1.Caption+'*';
    end;
    //注意后面的没能实现,郁闷,谁会教一下我
      

  2.   

    我之前也在onchange事件中写过代码,可是没用,而且连label1.caption:=edit1.text;这句代码都实现不了
    在keypress事件中发现label1.caption中总比edit1.text中少一位,如:edit中输入:abAB12a(7位) 而label中只有ABat**(6位)????
      

  3.   

    应该是在keypress中吧?或加个定时器,用一个很短的时间来不断地刷新里面的数据.
      

  4.   

    在KeyDown事件中加入代码!也能搞定
      

  5.   

    先在tform1中:  
    private
        i:integer;
        s:string;
    然后:
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if (Key>='a')and(Key<='z') then
        Insert(UpperCase(Key),s,i)
      else if (Key>='A')and(Key<='Z') then
        Insert(LowerCase(Key),s,i)
      else
        Insert('*',s,i);
      label1.Caption:=ReverseString(s);
    end;procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      i:=Length(edit1.Text)-edit1.SelStart+1;
    end;procedure TForm1.Edit1Enter(Sender: TObject);
    begin
      s:=Label1.Caption;
    end;
      

  6.   

    OnChange中实现肯定可以,你是不是哪里搞错了