如何用InputBox這個功能? |
尚未結案
|
xiangyou0017
一般會員 發表:7 回覆:5 積分:2 註冊:2011-11-27 發送簡訊給我 |
|
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
|
xiangyou0017
一般會員 發表:7 回覆:5 積分:2 註冊:2011-11-27 發送簡訊給我 |
對不起,呵呵!太著急,沒說清楚~
InputBox這個函數他的返回值是多少?應當怎樣利用?比如我想利用他的返回值做一個判斷,應當如何去用? 在一個Button事件里,我添加InputBox; 當我輸入為空時,點下確定,然後他的返回值是不是false或者0? 還想實現判斷,若輸入為空時,提示警告[ ]; 然後繼續在InputBox里輸入數值(返回上一步的判斷); 若不為空,則進行下一次的InputBox的調用(是不是如下方法?) AnsiString a=InputBox(" adfdfdf","dfsdfdsf",""); if(StrToInt(a)==0) {Application->MessageBox("dfdfd","dfdfdf",MB_ICONWARNING); AnsiString a=InputBox(" adfdfdf","dfsdfdsf","");} 這裡有個問題,若返回值是0的話,我輸入0也作出了為空的判斷,不是本意啊!!呵呵!~~~ |
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
InputBox 的 Edit 沒有 OnExit Event 供您做輸入值的檢查,
其兩個 Button 也無 OnClick Event 供您做輸入值的檢查, 故只能等它按下兩個 Button 之一後,關閉該視窗並傳回 Exit->Terxt 或 Default String。 如果您一定要該 String = "" 便重複執行 InputBox,那就得將它放在迴圈裡。 if(StrToInt(a)==0) 不符合您此處的需求: 當 a = "" 或 a = "A1" 或 a = "2.8.1" 等非數值時,會發生錯誤。 您該用 String 格式的 if (a == "") 判斷。 String a; a = ""; while (a == "") { a=InputBox("Input Box Caption","Prompt String",""); // or a=InputBox("Input Box Caption","Prompt String","Default Value"); if (a == "") Application->MessageBox("Prompt String Error Message".c_str(), "Input Box Caption".c_str(), MB_ICONWARNING); // 請看 OnLine Help 寫 Code,注意各參數的 Data Type。"String".c_str() 將 String 轉 char。 // 當 a == "" 返回迴圈頭,繼續要求輸入 a。 } 這種寫法,因不能即時於 Edit 的 OnExit 或 "確定" 之 OnClick 便擋住 Edit->Text == "" 並警告, 可能會重複開關 InputBox() 與 Application->MessageBox() 多次,並不理想。 但若無法開發自己的多功能 InputBox,也只能如此寫了! 又,即使 a != "",也未必符合您的目的;則 if (a == "") 可能需要加 else,並於其中做更複雜的判斷了。 bool OK = false; String a; a = ""; while (!OK) { a=InputBox("Input Box Caption","Prompt String",""); // or a=InputBox("Input Box Caption","Prompt String","Default Value"); if (a == "") { Application->MessageBox("Edit->Text 不准空白".c_str(), "Input Box Caption".c_str(), MB_ICONWARNING); // 請看 OnLine Help 寫 Code,注意各參數的 Data Type。"String".c_str() 將 String 轉 char。 } else { // a != "" 但可能仍不符需求,例如 = " " 一堆半型空白或 = "1$7#s!" 等亂七八糟的內容 // ........ if () OK = true; } // 當 OK == true 跳出迴圈,否則返回迴圈頭,繼續要求輸入 a。 }
編輯記錄
herbert2 重新編輯於 2011-12-07 11:42:43, 註解 無‧
|
xiangyou0017
一般會員 發表:7 回覆:5 積分:2 註冊:2011-11-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |