还有怎么用del键代替退格键
解决方案 »
- 关于TreeView中滚动条的问题
- !!!BS CSDN!!! 庆祝DELPHI2010发布!
- 请问如何判断stringgrid中是否存在相同的纪录?
- 有关access数据库的bmp图片的读取问题
- 如何从access数据库导到excel表格,delphi如何来实现~
- 多层的问题:如何解决这个错误--Cannot perform this operation on an open dataset
- Master/Detail巢状结构如何进行级联删除?
- 怎么将Treeview.Items.Item[i].data的值赋给一个record类型的变量啊?
- 请问在DELPHI中取得这一句SQL语句的结果: select max(id) from table1 ? 详细请进!
- 怎样对desktop文件进行加密????急!!!!
- 如何让非模态窗体永远显示在属主窗口的前方,同时显示,同时隐藏?
- 可用分在哪里了?
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_DECIMAL then
begin
key:= 0;
keybd_event(vk_back, MapVirtualKey(vk_back, 0), 0, 0);
keybd_event(vk_back, MapVirtualKey(vk_back, 0), KEYEVENTF_KEYUP, 0);
keybd_event(vk_back, MapVirtualKey(vk_back, 0), 0, 0);
keybd_event(vk_back, MapVirtualKey(vk_back, 0), KEYEVENTF_KEYUP, 0);
end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key='+' then key:=' ';
end;第二个问题就稍麻烦点了,keypress事件捕捉不到del这种功能键,只能靠keydown,但keydown事件直接替换又不行,比如
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key =46 then key:=8;//del 替换为back
end;
这种代码是行不通的,所以楼上的代码肯定也没经过测试,呵呵
begin
Handled := True;
case Msg.CharCode of
VK_ADD: PostMessage(Handle, WM_KEYDOWN, VK_SPACE, 0);
VK_DELETE: PostMessage(Handle, VK_ESCAPE, VK_SPACE, 0);
end;
end;
Shift: TShiftState);
var s:string; i:integer;
begin
if key =46 then
begin
key:=0;
s:=edit1.Text;
i:=edit1.SelStart;
edit1.Text:=copy(s,1,i-1)+copy(s,i+1,length(s));
edit1.SelStart:=i-1;
end;
end;
to: hellolongbin(一个人[散分贴收20%灌水税,非散分贴收10%资源占用税]) 你试试看就知道我测试没有了。呵呵
--------------------------------
我试过了才说的啊要不你再试试看? :p
你再试试看。^_^
这两个键可是不一样的哦;
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 46 then
begin
key:= 0;
keybd_event(vk_back, MapVirtualKey(vk_back, 0), 0, 0);
keybd_event(vk_back, MapVirtualKey(vk_back, 0), KEYEVENTF_KEYUP, 0);
end;
end;
procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
if edit1.Focused then
begin
case Msg.CharCode of
VK_ADD:
begin
Handled := True;
keybd_event(VK_SPACE,0,KEYEVENTF_EXTENDEDKEY or 0,0);
keybd_event(VK_SPACE,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
end;
VK_DELETE:
begin
Handled := True;
keybd_event(VK_BACK,0,KEYEVENTF_EXTENDEDKEY or 0,0);
keybd_event(VK_BACK,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
end;
end;
end;
end;