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

如何讓 FindComponent 與 Image1->Picture->Assign() 結合呢?

尚未結案
ADSL5
一般會員


發表:1
回覆:3
積分:0
註冊:2006-07-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-24 18:28:04 IP:140.134.xxx.xxx 訂閱
想把多張圖片放進資源檔裡,然後叫出來使用,因為實在是太多了。
要一直寫 pic1->Handle=LoadBitmap(HInstance, "pic1");
Image1->Picture->Assign(pic01);
所以想用
for(int i=1; i<=100; i )
( (TImage*)FindComponent("Image" IntToStr(i)) )->Picture->Assign("pic" IntToStr(i));

但是卻發生error:
[C Error] Unit1.cpp(67): E2034 Cannot convert 'AnsiString' to 'TPersistent *'
[C Error] Unit1.cpp(67): E2342 Type mismatch in parameter 'Source' (wanted 'TPersistent *', got 'AnsiString')

請問怎麼解決呢?

taishyang
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-25 11:21:32 IP:59.124.xxx.xxx 未訂閱
很明顯是參數的資料型態錯誤
要TPersistent *,你給AnsiString
ADSL5
一般會員


發表:1
回覆:3
積分:0
註冊:2006-07-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-25 17:10:01 IP:140.134.xxx.xxx 訂閱
那怎麼把它改成 TPersistent 的型式呢?因為把Assign((TPersistent*)"pic"+(TPersistent*)IntToStr(i));加上去後還是不行。 還是有其他替代的方法?
謝謝!
taishyang
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-01-25 17:35:17 IP:59.124.xxx.xxx 未訂閱
我想你要的應該是這樣吧
AnsiString szRcName = "";
for (int i=1; i<=100; i )
{
szRcName = "pic" IntToStr(i);
pic->Handle = LoadBitmap(HInstance, szRcName.c_str());
((TImage*)FindComponent("Image" IntToStr(i)))->Picture->Assign(pic);
}


ADSL5
一般會員


發表:1
回覆:3
積分:0
註冊:2006-07-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-01-26 14:07:03 IP:140.134.xxx.xxx 訂閱
問題解決了,真的非常感謝你,看來我腦筋要多變通一點!
系統時間:2024-05-04 13:26:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!