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

EDIT物件

尚未結案
solid098
一般會員


發表:16
回覆:14
積分:6
註冊:2007-02-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-06-05 15:09:58 IP:203.69.xxx.xxx 訂閱
procedure TForm2.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if (not (Key in ['0'..'9'])) then Key := #0;
end;

我下了此段程式碼是為了只能輸入數字,但卻發現BACKSPACE的功能還有CTRL V的功能也消失了不知道有什麼方法可以開啟
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-06-05 15:25:04 IP:211.75.xxx.xxx 訂閱
改用keydown或keyup
這兩個才能取得Ctrl , Shift , Alt的訊息
------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-06-05 16:25:41 IP:61.222.xxx.xxx 訂閱
case Key of
#0..#31:Result :=Key;
#48..#57:Result:=Key;
else
Result :=chr(0);
end;

h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-06-08 11:11:38 IP:59.40.xxx.xxx 未訂閱
下面這段代碼可以消除從剪貼板帶來非法輸入字符:

<textarea class="delphi" rows="10" cols="60" name="code"> uses ClipBrd; procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var Mgs: TMsg; procedure EatKey; begin PeekMessage(Mgs, 0, WM_CHAR, WM_CHAR, PM_REMOVE); end; begin if (ssCtrl in Shift) then case key of 86: begin if Clipboard.HasFormat(CF_TEXT) then try StrToInt(Clipboard.AsText); except EatKey end; end; 67: else EatKey; end else if not (Char(Key) in [#8, #13, #46, #48..#57, #96..#105]) then EatKey; end;</textarea>
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
系統時間:2024-11-22 22:31:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!