如何抓取inputbox的ok事件? |
答題得分者是:wnhoo
|
nachi
初階會員 發表:40 回覆:116 積分:31 註冊:2003-02-26 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
procedure TForm1.Button1Click(Sender: TObject);
var
InputString: string;
begin
InputString:= InputBox('Input Box', 'Prompt', 'Default string');//Text Default給'Default string'
SHOWMESSAGE(InputString);
//按下Cancel傳回Default string,如果改變Text的值('123')按下OK就傳回'123'
end;
TRY TRY SEE
引言: 當我按下inputbox的ok後,還要執行其它程式,請問語法該如何下? |
nachi
初階會員 發表:40 回覆:116 積分:31 註冊:2003-02-26 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
procedure TForm1.Button1Click(Sender: TObject);
begin
if InputBox('Input Box', 'Prompt', 'Default string')<>'Default string' then ABC;//ABC 是你的procedureName,傳回值<>Default string代表user有改變Text的值,這時就去執行你的procedure
end;
TRY TRY SEE
引言: chih:這個我知道了,我現在的問題是當我按下OK後,我還要呼叫借(還)書的procedure,因為程式會很長所以我不想寫在buttonclick裡,想要獨立出各自的procedure,有辦法嗎? |
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
若你給有意義的 Default String, 當 Default String 等於 result 時並不等於 User 沒按 OK, 只是他接受了你的預設值。 這時,最好是用 InputQuery ,因為若 User 按 OK InputQuery 會回傳 True 否則會回傳 False 至於數值就由 var 的參數取得。 例 :
procedure TForm1.Button1Click(Sender: TObject); var value : string //還可以是 widestring, double, integer 等 begin Value := Query1.FieldByName('書號').Value; // 預設值,可不設 if InputQuery('輸入書號', '請輸入書號', Value) then // 按了 OK ProcessOrder(Value) // 你的別的 Procedure else // 按了 Cancel DoSomethingElse; end;對於 double / integer InputQuery 還支援最大最小值甚按▲▼每次跳多少的設定,滿方便的。看看 Help 罷。 開始打post 時還沒看見 Chih 兄的第二般 post 和 wnhoo 兄的 post, 我打字真慢丫,若看見便不用打了> 發表人 - |
nachi
初階會員 發表:40 回覆:116 積分:31 註冊:2003-02-26 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |