[問題] BCB TImage 儲存到哪裡去了?

作者: noodleT (麵T)   2015-05-31 12:22:59
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
BCB
問題(Question):
圖片:
http://i.imgur.com/gKx96R5.png
完整程式碼:
.H
http://ideone.com/ohYxrV
.CPP
http://ideone.com/5ozF3o
BCB 中新增 TImage 元件,然後在「屬性 -> Picture」中載入圖片,
即使圖片被移除了, BCB 也可以正確執行、顯示圖片。
在自己製作的元件 TestButton 中,我希望使用者在建立元件時,
就順便載入 123.jpg 這張圖。但當 123.jpg 被移除時,程式就會跳 Error。
下面是覺得有影響的程式碼。
//.H
class PACKAGE TTestButton : public TButton
{
private:
TImage *Image;
//略
}
//.CPP
__fastcall TTestButton::TTestButton(TComponent* Owner): TButton(Owner)
{
Image = new TImage(this);
Image->Parent = this;
//略
Image->Picture->LoadFromFile("C:\\TestButton\\123.jpg");
}
請問我該怎麼把圖片保存在內部?
作者: EdisonX (卡卡獸)   2015-05-31 12:57:00
先想一下是不是絕對必要塞到程式裡面去,因一般程式會再切一個資料夾放UI的東西, LoadFromFile 時就寫成ExeFilePath + _T("\\Resource\\123.jpg") ; 如果不這麼做的話,我知道的方式事先用另一支程式把 123.jpg 內容全dump 出來,放在 code 裡面 byte jpg[] = {....} ; 等到執行期時再把 jpg[] 從 mem 讀出或寫出到檔案都可, 只是這種方式佔用 stack 太大, 不是絕對必要我不會那麼做。
作者: noodleT (麵T)   2015-05-31 13:39:00
因為這隻程式是給別人用的元件,如果不包進來,那別人使用這個元件,不就要再另外自備一個資料夾來存圖片?
作者: EdisonX (卡卡獸)   2015-05-31 14:07:00
設計讓別人用的話通常路徑是開放讓人填的
作者: TobyH4cker (Toby (我要當好人))   2015-06-01 04:50:00
還有resource可以用啊

Links booklink

Contact Us: admin [ a t ] ucptt.com