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

SetFocus()

答題得分者是:m8815010
Chenbc
一般會員


發表:31
回覆:33
積分:12
註冊:2004-01-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-03 19:57:05 IP:61.219.xxx.xxx 未訂閱
請教一下大大當一個Project內第2個FormActivate時把SetFocus指到 Form1->Edit1  如下
void __fastcall TForm2::FormActivate(TObject *Sender)
{  Form1->Edit1->SetFocus();
  }
這樣好像Form2上的元件都無法用Mouse去選擇或Click. 要如何SetFocus指到 Form1->Edit1的同時又可以操作Form2? 請指教
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-03 21:26:21 IP:203.73.xxx.xxx 未訂閱
引言: 請教一下大大當一個Project內第2個FormActivate時把SetFocus指到 Form1->Edit1 如下
void __fastcall TForm2::FormActivate(TObject *Sender)
{  Form1->Edit1->SetFocus();
  }
這樣好像Form2上的元件都無法用Mouse去選擇或Click. 要如何SetFocus指到 Form1->Edit1的同時又可以操作Form2? 請指教
Chenbc你好< >: 我想依你自已說明的,你應該也會覺得不太可能吧< >! 因為setfocus寫在Form2Active內就會造成Form2一被點到時就會立刻把focus設到Form1(或說Edit1上)! 如果你想要操作Form2上的元件的話,那又表示focus一定不在Form1上了! 所以明顯的兩者是互斥的! 除非你想作作效果的話,之前有小小研究過一下: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=43572 要不然應該是要看Chenbc你真正的需求是什麼,再來想辦法迂迴達到目的了!
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-03 21:49:54 IP:218.19.xxx.xxx 未訂閱
Chenbc 您好:    誠如 m8815010 版主所述,您所構想的動作是互斥的,而您並未詳細描述出為何要有這樣的動作?因此觀文者難以瞭解您的實際需求到底是什麼?    如果您只是要讓兩個 Form 都同時能操作的話,下列兩點可以參考一下:    1. 不要使用下列方式叫出 Form2:
    Form2 = new TForm2(this);
    Form2->ShowModal();
    delete Form2;
改成直接用 Show() 的方式叫出 Form2:
    Form2->Show();
2. Form2 的 FormStyle 屬性設為 fsStayOnTop。 按上述的方式來設定與叫出 Form2 時,Form2 會 "飄" 在 Form1 上方,但是兩個 Form2 同時都可以操作。 您參考一下。
Chenbc
一般會員


發表:31
回覆:33
積分:12
註冊:2004-01-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-03 23:36:32 IP:61.219.xxx.xxx 未訂閱
在下也try老半天 謝謝m8815010,RedSnow兩位大大的回答, http://delphi.ktop.com.tw/topic.php?TOPIC_ID=43572 這篇很不錯 這題就給了m8815010
系統時間:2024-05-12 12:09:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!