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

選取後RadioButton才能在MaskEdit中輸入

尚未結案
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-25 22:39:59 IP:218.162.xxx.xxx 未訂閱
如圖中所示 我需要在MaskEdit輸入前先呈先灰白狀態(不可輸入) 判斷RadioButton是否為RadioButton->Checked 2個其中一個被點選後才能在Maskedit輸入 下面是我自己寫的語法,不過好像無法達成 (MaskEdit開始已經為false圖片沒有改到) if(RadioButton5->Checked || RadioButton6->Checked) { MaskEdit10->Enabled = true; } else { MaskEdit10->Enabled = false; } 請前輩幫我看看~謝謝^^ 另外再問一下清空Edit方法為 Edit->Text =""; 那RadioButton的清空方法? 謝謝
limeca
中階會員


發表:2
回覆:74
積分:60
註冊:2005-05-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-25 23:13:56 IP:61.230.xxx.xxx 未訂閱
請問你這段寫在哪??某個button在判斷的嗎???

if(RadioButton5->Checked || RadioButton6->Checked)
{
   MaskEdit10->Enabled = true;
}
else
{
   MaskEdit10->Enabled = false;
}
其實你可以寫在RadioButton1Click裡 也許會比較方便,當某個RadioButton1被點選時,
MaskEdit10->Enabled = false;
也許會比較方便,當某個RadioButton5或6被點選時,
MaskEdit10->Enabled = true;
RadioButton清除的方式如下.. RadioButton1->Checked=false; 發表人 - limeca 於 2005/07/25 23:18:15
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-25 23:34:32 IP:218.162.xxx.xxx 未訂閱
喔喔~~我沒有注意到~~是寫在MaskEdit裡頭啦~~ 謝謝你啦~不過我是比較希望用像我一樣的方式做出來~ 讓Edit一開始為false,有被選到那2個按鈕時才為true
limeca
中階會員


發表:2
回覆:74
積分:60
註冊:2005-05-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-26 00:00:56 IP:61.230.xxx.xxx 未訂閱
寫在MaskEdit裡頭... 那MaskEdit本身就是false 所以你寫在裡面...表示永遠不會被執行到 那MaskEdit就永遠是false......不會有true的一天
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-26 00:33:18 IP:218.162.xxx.xxx 未訂閱
嗯嗯~~我將他寫在RadioButton5(前插入)裡頭, 可是如果點選RadioButton6(後插入),就沒有辦法讓MaskEdit變True`, 而且選了前插入後再換選刪除和取代的話,MaskEdit無法自己變false 應該還要再加一些敘述來判斷,我在想想怎解~先謝謝你^^
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-26 00:41:07 IP:218.162.xxx.xxx 未訂閱
我想出來辦法了,可是還滿不精簡的, 需要在4個RadioButton裡頭各加以下程式碼就可以了
前後插入鈕
if(RadioButton5->Checked)
{
 MaskEdit10->Enabled = true;
  }
 else
 {
 MaskEdit10->Enabled = false;
 } 
刪除取代鈕 
if(RadioButton4->Checked)
{
 MaskEdit10->Enabled = false;
  }
 else
 {
 MaskEdit10->Enabled = true;
 }
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-07-26 01:19:39 IP:221.169.xxx.xxx 未訂閱
Miki-lion:依妳的要求為何不考慮TRadioGroup元件比較簡單一些
拉一個TRadioGroup於Items屬性裡輸入刪除、取代、前插入、後插入等字串
一、RadioButton的清空方法?
RadioGroup1->ItemIndex=-1;
二、使用RadioGroup1Click事件
void __fastcall TForm1::RadioGroup1Click(TObject *Sender)
{
  // 0:刪除 1:取代 
  if (RadioGroup1->ItemIndex == 0 || RadioGroup1->ItemIndex == 1)
    MaskEdit10->Enabled=true;
  else
    MaskEdit10->Enabled=false;
  /* // 也可以使用Switch來判斷
    switch(RadioGroup1->ItemIndex )  {
      case  0: 
      case  1: MaskEdit10->Enabled=true; break;
      default: MaskEdit10->Enabled=false; break;
    }
  */
}
這應該比較符合妳的需求!我認為這比較簡單些!
Andy Chang
------
Andy Chang
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-07-26 08:11:54 IP:218.162.xxx.xxx 未訂閱
因為還有別的元件在我只能用GroupBox 我試過改在GroupBox上 不過ItemIndex這屬性不行使用,正在想別的方式來做 先謝謝你^^
RedSnow
版主


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-07-26 11:24:59 IP:59.115.xxx.xxx 未訂閱
Miki-lion 妳好:    妳這次的問題其實可以用我上次告訴過妳的 "共用事件" 方式來解決,妳可以僅設定一個 RadioButton 的 OnClick 事件內容,然後將另外幾個 RadioButton 的 OnClick 事件在事件表直接指向同一個 OnClick 事件即可,這樣子設定可以簡化事件內容為一道判斷式就夠了,例如:
1. 在 RadioButton3 設定 OnClick 事件內容如下:
void __fastcall TForm2::RadioButton3Click(TObject *Sender)
{
    if (RadioButton5->Checked || RadioButton6->Checked) {
        MaskEdit10->Enabled = true;
    } else {
        MaskEdit10->Enabled = false;
    }
}    2. 將 RadioButton4、RadioButton5、RadioButton6 的 OnClick 全部指向 RadioButton3Click。
OnClick 事件中的判斷式也可以寫成下列這種方式: if (Sender == RadioButton5 || Sender == RadioButton6) { 因為事件是共用的,而傳入的 Sender 參數就是呼叫事件的物件 (或元件) 本身,因此我們可以透過 Sender 來識別是那一個 RadioButton 被點選了? 如果妳在 OnClick 事件中希望針對不同 RadioButton 做一些不同的處理,那就可以寫成下列這樣:
void __fastcall TForm2::RadioButton3Click(TObject *Sender)
{
    if (Sender == RadioButton5 || Sender == RadioButton6) {
        MaskEdit10->Enabled = true;
        if (Sender == RadioButton5) {
            .... 此處做點選 "前插入" 項目時的處理 ....
        } else {
            .... 此處做點選 "後插入" 項目時的處理 ....
        }
    } else {
        MaskEdit10->Enabled = false;
        if (Sender == RadioButton3) {
            .... 此處做點選 "刪除" 項目時的處理 ....
        } else {
            .... 此處做點選 "取代" 項目時的處理 ....
        }
    }
}
試試看吧。 7 天天敲鍵盤 v 時時按滑鼠 8 發表人 - RedSnow 於 2005/07/26 12:02:38
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-07-26 19:01:42 IP:221.169.xxx.xxx 未訂閱
引言: 因為還有別的元件在我只能用GroupBox 我試過改在GroupBox上 不過ItemIndex這屬性不行使用,正在想別的方式來做 先謝謝你^^
插花一下!我不懂只能用TGroupBox元件而不能使用TRadioGroup元件? 我寫的程式幾乎都是使用TRadioGroup元件。並沒有不方便。 Andy Chang
------
Andy Chang
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-07-26 19:35:52 IP:218.162.xxx.xxx 未訂閱
TRadioGroup元件不是只能給RadioButton用嗎? 因為我還有ㄧ個maskEdit啊 只能用GroupBox了^^
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-07-26 19:42:23 IP:221.169.xxx.xxx 未訂閱
引言: TRadioGroup元件不是只能給RadioButton用嗎? 因為我還有ㄧ個maskEdit啊 只能用GroupBox了^^
被妳打敗了!:P Andy Chang
------
Andy Chang
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-07-26 19:46:10 IP:210.68.xxx.xxx 未訂閱
andychang1690前輩: 您不是第一個被打敗的
系統時間:2024-05-13 13:46:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!