全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1540
推到 Plurk!
推到 Facebook!

有關FileListBox裡OnKeyPress事件處理問題

尚未結案
chan5287
一般會員


發表:11
回覆:9
積分:4
註冊:2004-11-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-22 02:02:21 IP:201.13.xxx.xxx 未訂閱
本人有一個物件是F1(FileListBox),有一個 TB1(ToolBar)裡面有一個TBB1(ToolButton)他的功能是刪除 如果我要把F1裡面的東西用按刪除的按鈕(TBB1)刪除 用的是OnKeyPress的事件,那麼請問一我要怎麼寫 是很簡單的問題,新手新手 希望大家能幫幫我..
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-22 08:10:16 IP:218.15.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-22 08:21:46 IP:200.207.xxx.xxx 未訂閱
抱歉抱歉說錯了... OnKeyPress事件我是要在 FileListBox裡面用的... 而要建立一個刪除物件來刪除 裡面的資料...不知這樣說大家懂不懂 歹是喔
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-22 09:21:01 IP:218.15.xxx.xxx 未訂閱
引言: 抱歉抱歉說錯了... OnKeyPress事件我是要在 FileListBox裡面用的... 而要建立一個刪除物件來刪除 裡面的資料...不知這樣說大家懂不懂 歹是喔
chan5287您好: 小弟上面所PO的代码,正是通过一個TBB1(ToolButton)对F1(FileListBox)里的资料进行删除的喔,您试试喔 ~~~行径窄处,留一步与人行~~~
chan5287
一般會員


發表:11
回覆:9
積分:4
註冊:2004-11-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-22 17:01:47 IP:200.226.xxx.xxx 未訂閱
deity謝謝妳的意見...只不過現在的我是遇到一個習題 我打出來讓你看看好了---- 在FileListBox物件的OnKeyPress事件中加入 按下DELETE鍵可以刪除檔案的功能 想請教兩個問題的是..... 他這個是不是鍵盤上的DELETE鍵呢.. 如果是的話我要怎麼寫... 那會不會是用TBB1(ToolButton)的按鈕呢? 就是這問題,謝謝deity的勞心...
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-12-22 17:34:37 IP:220.130.xxx.xxx 未訂閱
建議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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-12-22 18:50:14 IP:219.129.xxx.xxx 未訂閱
引言: 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大大真是厉害,小弟下班回家,一看大大已经答上了,神速,小弟上面的代码只是对大大的略作修改,还望大大别见怪 ~~~行径窄处,留一步与人行~~~
系統時間:2024-05-21 17:39:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!