有關FileListBox裡OnKeyPress事件處理問題 |
尚未結案
|
chan5287
一般會員 發表:11 回覆:9 積分:4 註冊:2004-11-07 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
chan5287您好:
ToolButton 是没有onkeypress事件的,而如果用FileListBox裡的OnKeyPress事件處理又好像和ToolButton没什么关系,况且在OnKeyPress事件做删除,好像不合逻辑?
直接在ToolButton做删除是不是您所要的
< class="code">
procedure TForm1.TBB1Click(Sender: TObject);
begin
deletefile(F1.FileName);
F1.Update;
end;
~~~行径窄处,留一步与人行~~~ 發表人 - deity 於 2004/12/22 08:17:52
|
chan5287
一般會員 發表:11 回覆:9 積分:4 註冊:2004-11-07 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
|
chan5287
一般會員 發表:11 回覆:9 積分:4 註冊:2004-11-07 發送簡訊給我 |
|
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
建議From的KeyPreview設為True
在FormKeyDown中寫下
procedure TForm1.TBB1Click(Sender: TObject); begin if FileExists(F1.FileName) then begin DeleteFile(F1.FileName); F1.Update; end; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of VK_DELETE: if MessageDlg('Delete File : ' F1.FileName, mtConfirmation, [mbYes, mbNo], 0) = mrYes then TBB1.Click; end; end; |
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
引言: deity謝謝妳的意見...只不過現在的我是遇到一個習題 我打出來讓你看看好了---- 在FileListBox物件的OnKeyPress事件中加入 按下DELETE鍵可以刪除檔案的功能 想請教兩個問題的是..... 他這個是不是鍵盤上的DELETE鍵呢.. 如果是的話我要怎麼寫... 那會不會是用TBB1(ToolButton)的按鈕呢? 就是這問題,謝謝deity的勞心... >>< face="Verdana, Arial, Helvetica"> chan5287您好: 没看到您所打出来的习题(如果是习题的话,您得自己多多实做一下,才会真正的了解和解决问题),不过无所谓,您可以设成您所喜欢的按键进行删除,只要对应到您自己所需的键值,另如果您要实现按下DELETE鍵可以刪除檔案的功能,也无需用到TBB1(ToolButton)的按鈕,可直接进行操作procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of VK_DELETE: //指定键值,依您所需 if MessageDlg('Delete File : ' F1.FileName, mtConfirmation, [mbYes, mbNo], 0) = mrYes then if FileExists(F1.FileName) then begin DeleteFile(F1.FileName); F1.Update; end; end; end;Note:要按Delete键删除的话,在onKeyPress事件中写是做不到的 这里说说KEYPRESS,KEYDOWN,KEYUP三事件的区别: KeyPress主要用来接收字母、数字等ANSI字符,而 KeyDown 和 KeyUP 事件过程可以处理任何不被 KeyPress 识别的击键,诸如:功能键(F1-F12)、编辑键、定位键以及任何这些键和键盘换档键的组合等。与 KeyDown 和 KeyUp 事件不同的是,KeyPress 不显示键盘的物理状态(SHIFT键),而只是传递一个字符。KeyPress 将每个字符的大、小写形式作为不同的键代码解释,即作为两种不同的字符。而 KeyDown 和 KeyUp 用两种参数解释每个字符的大写形式和小写形式:keycode — 显示物理的键(将 A 和 a 作为同一个键返回)和 shift —指示 shift key 键的状态而且返回 A 或 a 其中之一。 KeyDown、KeyUp事件是当按下 ( KeyDown ) 或松开 ( KeyUp ) 一个键时发生的。由于一般按下键盘的键往往会立即放开(这和鼠标不同),所以这两个事件使用哪个差别不大。 PS多一句:jow大大真是厉害,小弟下班回家,一看大大已经答上了,神速,小弟上面的代码只是对大大的略作修改,还望大大别见怪 ~~~行径窄处,留一步与人行~~~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |