如何指定Image元件讓副程式在指定的Image上畫圖? |
尚未結案
|
smilebye
一般會員 發表:21 回覆:33 積分:10 註冊:2004-01-18 發送簡訊給我 |
|
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
引言: 大家好: 我寫一個副程式專門將輸入的圖畫出來.. 請問我要把圖畫在指定的Image元件上 該怎麼傳參數給副程式呢? void Show(int h,int w, ???) { 畫圖; ???->Reflesh(); }你好: 之前有用過這樣的方式, 輸入 1.二維灰階影像指標, 2.影像寬 3.影像高 void display2(byte **img,int width,int height) { Graphics::TBitmap* bitmap = new Graphics::TBitmap; int x,y; unsigned char clr; //---Give Picture Size to Bitmap bitmap->Width=width; bitmap->Height=height; for(x=0;x<(bitmap->Width);x ) for(y=0;y<(bitmap->Height);y ) { clr=img[y][x]; //paste on bitmap object to show bitmap->Canvas->Pixels[x][y]=(TColor)RGB(clr,clr,clr); } Form1->Image2->Canvas->Draw(0,0,bitmap); delete bitmap; } |
smilebye
一般會員 發表:21 回覆:33 積分:10 註冊:2004-01-18 發送簡訊給我 |
|
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
你好: 是這樣嗎?改變focus,來達成切換輸出的Image1物件
static focus; void display2(byte **img,int width,int height) { Graphics::TBitmap* bitmap = new Graphics::TBitmap; int x,y; unsigned char clr; //---Give Picture Size to Bitmap bitmap->Width=width; bitmap->Height=height; for(x=0;x<(bitmap->Width);x ) for(y=0;y<(bitmap->Height);y ) { clr=img[y][x]; //paste on bitmap object to show bitmap->Canvas->Pixels[x][y]=(TColor)RGB(clr,clr,clr); } switch (focus) { case 1: Form1->Image1->Canvas->Draw(0,0,bitmap); break; case 2: Form1->Image2->Canvas->Draw(0,0,bitmap); break; default: Form1->Image1->Canvas->Draw(0,0,bitmap); } delete bitmap; } |
smilebye
一般會員 發表:21 回覆:33 積分:10 註冊:2004-01-18 發送簡訊給我 |
JerryKuo你好:
你說的那個想法是可行的我怎沒想到呢,可是我的想法如下不知道為何有錯誤 < class="code"> void __fastcall TForm1::Button1Click(TObject *Sender)
{
Show(Image1);//指定副程式將圖畫在Image1元件上
}
//--------------
void Show(TImage* a)
{
a->Reflesh();//畫圖
}
出現錯誤如下:[C Error] Unit1.cpp(23): E2227 Extra parameter in call to _fastcall TCustomForm::Show()
而我把Show()宣告成
class TForm1 : public TForm { __published: // IDE-managed Components TButton *Button1; TImage *Image1; void __fastcall Button1Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); void __fastcall Show(TImage*);//宣告在這邊就可以 }; void __fastcall TForm1::Show(TImage* a) { }為什麼呢? 我是新手,程式設計的菜鳥>< 嗚~請多幫忙唷! 發表人 - smilebye 於 2004/10/28 18:51:59
------
我是新手,程式設計的菜鳥>< 嗚~請多幫忙唷! |
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
|
zhangyaohu
一般會員 發表:7 回覆:8 積分:8 註冊:2004-06-29 發送簡訊給我 |
Show(TImage*)是Form1內部的function,在實現的時候應加上TForm1::。 頭文件(.hpp)
class TForm1 : public TForm { __published: // IDE-managed Components TButton *Button1; TImage *Image1; void __fastcall Button1Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); void __fastcall Show(TImage*);//宣告在這邊就可以 }; void __fastcall TForm1::Show(TImage* a) { }//紅色部分應去掉,會引起混亂。實現文件(.cpp) void __fastcall TForm1::Button1Click(TObject *Sender) { Show(Image1);//指定副程式將圖畫在Image1元件上 } //-------------- void __fastcall TForm1::Show(TImage* a)//加入紅色部分 { a->Reflesh();//畫圖 }發表人 - zhangyaohu 於 2004/10/29 10:47:52 |
smilebye
一般會員 發表:21 回覆:33 積分:10 註冊:2004-01-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |