从键盘接收一字符串后,按F4键则输出其奇数位字符的大写,按F7则输出偶数位字符的小写,请教代码如何编写?

解决方案 »

  1.   

    从键盘接收一字符串...
    ============================
    如何接收法?通过文本框(TEdit)接收么?----------------------------
    ...按F4键则输出其奇数位字符的大写,按F7则输出偶数位字符的小写...
    ============================
    在哪按F4键?又在哪输出?
      

  2.   

    这个问题可以难也可以简单
    难点可以是全局的 在任何地方 只要按键
    就获取,那么这要写个键盘钩子
    简单的话就是在程序的FORM里指定的地方输入
    同样快捷键也是这样,在FORM里简单
      

  3.   

    不好意思没说清楚,用EDIT.TEXT接收输入字符,输入完后按F4或F7.按键后在EDIT.TEXT里,大写输出奇数或偶数位数的字符。
      

  4.   

    可以用鼠标钩子,也可以注册hotkey,还可以在form的onkeypress里面处理,判断
    begin
       if (byte(edit1.text[1])>byte('a')) and (byte(edit1.text[1])<byte('A')) then
       begin
           ........................
       end;
    end;
      

  5.   

    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var str:string;
        i:integer;
        temp:string;
    begin
      temp:='';
      if key=115 then
      begin
        str:=edit1.Text;
        for i:=0 to length(edit1.Text) do
        begin
          if i mod 2=1 then
          temp:=temp+edit1.Text[i];
        end;
        edit1.Text:=uppercase(temp);
      end else  if key=118 then
      

  6.   

    form1的keypreview:=true;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
      var i:integer; s:string;
      begin
        if key=115 then     //F4
        begin
            s:='';
            for i:=1 to length(Edit1.Text) do
            if (i mod 2)=1 then s:=s+Edit1.Text[i];
            Edit1.Text:=UpperCase(s);
        end
        else if key=118 then //F7
        begin
            类似,不写了
        end;
    end;
      

  7.   

    设置为FormKeyDown按F4或F7好象不行呀。设为EditKeyDown倒可以。
      

  8.   

    Sorry,忘了设置form1的keypreview:=true;
    得到答案就此结贴。