全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1012
推到 Plurk!
推到 Facebook!

請問為什麼我用MessageBox一值有錯???

尚未結案
danielkelly
初階會員


發表:36
回覆:108
積分:28
註冊:2003-05-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-14 16:59:54 IP:140.124.xxx.xxx 未訂閱
請教各位大哥 我用以下的 float rate,f,p,n; n=StrToFloat(Cash_Flow->Period->Text); rate=StrToFloat(InputBox("利率","請輸入利率",0.1)); f=p*pow(1 rate,n); Application->MessageBox("未來值(PW)是" FloatToStr(f),"未來值(PW)",MB_OK); ------->這一行一直有錯 錯誤訊息 can't not covert AnsiString to char ???? 請問我要如何改錯 謝謝
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-14 18:23:43 IP:203.204.xxx.xxx 未訂閱
danielkelly, 您好 修改一下您的code,因為第一個參數的type是LPCTSTR,所以變更一個type即可。試試看。 < class="code"> String str = "未來值(PW)是" FloatToStr(f); Application->MessageBox(str.c_str(),"未來值(PW)",MB_OK); ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
danielkelly
初階會員


發表:36
回覆:108
積分:28
註冊:2003-05-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-16 00:10:53 IP:140.124.xxx.xxx 未訂閱
請問什摸是 LPCTSTR 阿?? 謝謝
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-16 10:37:43 IP:61.221.xxx.xxx 未訂閱
danielkelly, 您好 LPCTSTR是一種資料型態(type),就像是int, float, char......等等。 其實也可以把LPCTSTR看做是與char *一樣的資料型態,這樣您會比較清楚。 以上說法如有不對,請前輩先進們指教。 ================================= <>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 <>是非終日有,不聽自然無 <>天下本無事,庸人自擾之
artist1002
高階會員


發表:2
回覆:155
積分:151
註冊:2002-09-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-16 21:11:55 IP:211.76.xxx.xxx 未訂閱
插花一下...如果你不想另外宣告一個變數也可使用這樣的方式
Application->MessageBox(AnsiString("未來值(PW)是" FloatToStr(f)).c_str(),"未來值(PW)",MB_OK);
發表人 - artist1002 於 2003/06/16 21:12:41
danielkelly
初階會員


發表:36
回覆:108
積分:28
註冊:2003-05-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-17 00:08:26 IP:140.124.xxx.xxx 未訂閱
謝謝 我懂了 那.c_str()是不是就是把 string 轉換成LPCTSTR 的Method嗎?? 請問 .c_str() 是string 的一個method 嗎??
artist1002
高階會員


發表:2
回覆:155
積分:151
註冊:2002-09-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-17 02:50:26 IP:211.76.xxx.xxx 未訂閱
引言: 謝謝 我懂了 那.c_str()是不是就是把 string 轉換成LPCTSTR 的Method嗎?? 請問 .c_str() 是string 的一個method 嗎??
LPCTSTR 是字串的遠程指標, 在BCB裡可以看作是char *, 在BCB裡頭String和AnsiString都是AnsiString型別 (其中String被typedef成AnsiString) 在程式碼中的""包起來的字都被視為AnsiString型態. 所以要進行轉換才能夠成為char *的型態 AnsiString提供了許多的method讓我們方便使用,c_str()是其中的一種 我們再來看看MessageBox, 剛剛查了Help MessageBox的原型為 int __fastcall MessageBox(const char * Text, const char * Caption, int Flags); 可以看到第一個和第二個參數的型態都是要char * 所以要使用AnsiString的c_str()來將字串轉成char *型態來當參數 發表人 - artist1002 於 2003/06/17 02:51:51
danielkelly
初階會員


發表:36
回覆:108
積分:28
註冊:2003-05-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-06-17 14:08:17 IP:140.124.xxx.xxx 未訂閱
謝謝 我都懂了  因為 我是用tech_state說的方法解決的  所以 分數就 ... 請見諒  
系統時間:2024-09-28 7:40:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!