請問副程式要怎麼輸入元件名稱呢 ? |
尚未結案
|
l8939_c
一般會員 發表:9 回覆:15 積分:4 註冊:2005-03-07 發送簡訊給我 |
我希望寫一個副程式,輸入一個元件名稱, 就在該元件上執行 例如我有兩個 Image 元件 (Img1 , Img2)
我希望執行 Img1->Canvas->Rectangle(50,50,200,300);
或 Img2->Canvas->Rectangle(50,50,200,300);
所以希望寫一個副程式,輸入 Img1/Img2 就可執行 void pic_img(Object a1)
{
a1->Canvas->Rectangle(50,50,200,300);
} 不知正確寫法為何 ? engineer
------
engineer |
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
|
l8939_c
一般會員 發表:9 回覆:15 積分:4 註冊:2005-03-07 發送簡訊給我 |
richtop 您好: 我還有一個小問題
因為我想寫關於繪圖及列印的程式
我想讓程式先在螢幕上畫好,並且列印出來
我的構想是
例如:
void passImage(Object *Obj1)
{
Obj1->Canvas->MoveTo(100,100);
Obj1->Canvas->LineTo(200,200);
Obj1->Canvas->LineTo(200,300);}
.....................
} 然後輸入
passImage(Imag1); // 螢幕輸出
passImage(Printer()); // 印表機輸出 不知 C 是否可以辦到呢 engineer
------
engineer |
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
l8939_c 您好: 基本上可以,不過兩者對Canvas的使用仍有區別,需要分別去判斷。
底下程式僅供參考,或許還有更好的方式。 < class="code">
void passImage(TObject *Obj)
{ AnsiString cName = Obj->ClassName();
TCanvas *canvas; if ( cName=="TImage" )
{ canvas = ((TImage *) Obj)->Canvas;
}
else if ( cName=="TPrinter" )
{ canvas = ((TPrinter *) Obj)->Canvas;
}
else return; if ( cName=="TPrinter" )
{ ((TPrinter *) Obj)->BeginDoc();
} // ===== Begin to draw anything you want below
canvas->MoveTo(100,100);
canvas->LineTo(200,200);
canvas->LineTo(200,300);
// ##### end of drawing if ( cName=="TPrinter" )
{ ((TPrinter *) Obj)->EndDoc();
}
} void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
passImage(Image1);
passImage(Printer());
}
//---------------------------------------------------------------------------
RichTop 敬上 =====*****
把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題!
=====#####
|
l8939_c
一般會員 發表:9 回覆:15 積分:4 註冊:2005-03-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |