CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

菜鸟问题2:(快速结帖)

楼主river_good(甲水河)2005-07-22 23:53:02 在 Delphi / 语言基础/算法/系统设计 提问

从键盘接收一字符串后,按F4键则输出其奇数位字符的大写,按F7则输出偶数位字符的小写,请教代码如何编写? 问题点数:40、回复次数:9Top

1 楼unsigned(僵哥(发站内消息,请附上链接或问题说明,否则不予回复))回复于 2005-07-23 00:56:23 得分 5

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

2 楼blender(新手上路)回复于 2005-07-23 04:01:14 得分 5

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

3 楼xixuemao(钱不是问题,问题是没钱)回复于 2005-07-23 05:58:28 得分 3

问清楚哈,不同的情况解决的办法不同,难易也不同。Top

4 楼river_good(甲水河)回复于 2005-07-23 08:47:39 得分 0

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

5 楼heluqing(鉴之小河〖劳累求充实〗)(vcl .net)回复于 2005-07-23 12:39:58 得分 7

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

6 楼bluejing0(此名已被占用!)回复于 2005-07-23 12:59:50 得分 10

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  
  。。。。。。。。。。。。。。。。。。Top

7 楼hellolongbin(一个人(自从扩充话题改版,再也不去灌水乐园了))回复于 2005-07-23 13:32:14 得分 10

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;Top

8 楼river_good(甲水河)回复于 2005-07-23 15:45:15 得分 0

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

9 楼river_good(甲水河)回复于 2005-07-23 15:47:47 得分 0

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

相关问题

  • 怎么结帖?——菜鸟求救
  • 菜鸟的问题,快速结帖,送分!!!!
  • 菜鸟问个简单的问题,关于const,立刻结帖!
  • 菜鸟提问,望高手帮忙!在线等候结帖!
  • CWinThread和CSocket菜鸟问题,今天结帖
  • 关于stricmp的菜鸟问题,太阳下山前结帖
  • 菜鸟的简单问题,请大家帮忙,马上结帖
  • LinkButton菜鸟问题,在线等,马上结帖!!!
  • 菜鸟问题!Repeater参数判断!在线等马上结帖!!!
  • VC菜鸟问题,立结

关键词

  • 字符
  • 偶数
  • 键盘
  • 输出
  • 奇数
  • 接收
  • edit
  • 不同
  • byte
  • form

得分解答快速导航

  • 帖主:river_good
  • unsigned
  • blender
  • xixuemao
  • heluqing
  • bluejing0
  • hellolongbin

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo