菜鸟问题2:(快速结帖)
从键盘接收一字符串后,按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




