線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2979
推到 Plurk!
推到 Facebook!

如何轉移「被選取的元件」?

答題得分者是:herbert2
QooJC
一般會員


發表:7
回覆:10
積分:3
註冊:2011-04-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-06-20 18:48:12 IP:219.70.xxx.xxx 訂閱
各位大大安安。

請問,我如果現在有三個元件,分別是:
Button1
Edit1
Edit2

如果現在,「輸入文字
的游標」是在「Edit1」上,我想要在按下Button1之後,讓「輸入文字的游標」跳到Edit2上面,該怎麼做呢?

謝謝~。

herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-06-20 22:10:39 IP:202.39.xxx.xxx 訂閱
不知您為何不使用系統 Default 的 Tab and Shift-Tab 鍵來將焦點在 TWinControl 元件間移動?
Edit1 Tab 至 Edit2,再 Tab 又回到 Edit1 (若沒有其他 TWinControl 元件的話),Shift-Tab 又倒回到 Edit2。
Edit2->SetFocus(); 會強制焦點移到 Edit2。

若不想用 Tab 而想仿 Dos 用 Enter 鍵,站上亦有完整答案。

請多看 BCB Help 中元件的 Property、Event、Method 說明吧吧,否則等您逐次把問題問完,
怕老骨頭們已無法為您回答問題了!
QooJC
一般會員


發表:7
回覆:10
積分:3
註冊:2011-04-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-06-20 23:18:09 IP:219.70.xxx.xxx 訂閱

===================引 用 herbert2 文 章===================
>不知您為何不使用系統 Default 的 Tab and Shift-Tab 鍵來將焦點在 TWinControl 元件間移動?
>Edit1 Tab 至 Edit2,再 Tab 又回到 Edit1 (若沒有其他 TWinControl 元件的話),Shift-Tab 又倒回到 Edit2。

i193.photobucket.com/albums/z170/QooJC/Computer Science/VBCG/ErrorMessage-Focus.png

>請多看 BCB Help 中元件的 Property、Event、Method 說明吧吧,否則等您逐次把問題問完,
>怕老骨頭們已無法為您回答問題了!

抱歉……因為我在撰寫一個很大的程式,這個程式是我的期末專案作業;又因為這門課是我大學生涯的最後一門,我今年又考上了研究所;老師說一定要通過,如果沒寫出來,就沒辦法過,然後無法畢業,然後無法順利就讀研究所。
一時太急,沒多做說明,發問太倉促,抱歉~

可是,我剛剛用貴站和谷歌的搜尋,找「BCB 元件 焦點」、「focus」、「BCB component focus」,都找不到耶;可以請您賜教一下嗎?感激不盡~!

編輯記錄
QooJC 重新編輯於 2011-06-20 09:18:38, 註解 無‧
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-06-21 00:42:16 IP:202.39.xxx.xxx 訂閱
Error Message 很清楚的告訴您:
您不可以將焦點移到『Enabled 被設定為 false 而成為 Disabled 的』或『Visible 被設定為 false 而成為
看不見的』的元件上。

若您想要讓 User 不能 Key-In 或要讓 User 看不見,則 SetFocus() 前,要先將這兩個Property 改為 true。

要令 Edit1 只准輸入數字或英文字母,只要在其 ObKeyPress() Event 做處理便可,
甚至可依其他元件的狀態,決定 Edit1 在 Case 1 只准輸入數字,而在 Case 2 只准輸入英文字母。

若要避免 Edit1 輸入非數字而造成程式『發生嚴重錯誤』(一個小錯誤也不該發生呀),
有幾個地方可以阻擋:
(1) 在 Edit1 的 OnKePress() Event (當焦點在 Edit1 時,按鍵盤便觸發此 Event) 便擋掉錯誤。
(2) 在 Edit1 的 OnExit() Event (當焦點要從 Edit1 轉到另一個 TwinControl 元件時便觸發此 Event)
檢查 Edit1->Text,若不如您意,便執行 Edit1->SetFocus() 使焦點又回到Edit1 而無法往下執行您的
『下一段程式碼』。
(3) 在您的『下一段程式碼』開始的第一句,便檢查 Edit1->text,
若不如您意,便執行 Edit1->SetFocus() 使焦點又回到Edit1 而無法往下執行您的『下一段程式碼』。

總之,方法很多,就看您想要做什麼。
設成「唯讀」 User 便無法 Key-In 了,並不須再將它設成 Disabled 呀?!
您那句 Error Message 就在告訴您,焦點無法移到 Disabled 的 Edit2 啦!

目前本站的搜尋無法正常運作,熱心的 bestlong 副站長正在努力修復中。
您要找的東東,其時在 BCB OnLine-Help 中都有提到,只是都是英文。
因您似乎看不懂 Error Message,我懷疑您不擅長程式語言中的英文說明?!
編輯記錄
herbert2 重新編輯於 2011-06-20 10:46:07, 註解 無‧
QooJC
一般會員


發表:7
回覆:10
積分:3
註冊:2011-04-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-06-21 12:46:42 IP:219.70.xxx.xxx 訂閱
好,我已經知道要怎麼做了,謝謝您~!
系統時間:2024-04-27 12:37:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!