Image上Canvas放大的問題 |
答題得分者是:cashyy
|
khaupe
一般會員 發表:28 回覆:25 積分:15 註冊:2003-06-30 發送簡訊給我 |
程式目的:
在Image上的Canvas畫好幾條等間距的線(由Edit來決定要幾條) , Image的大小視線條數目而定. 程式流程:
1.決定Image大小
2.清除Image上的圖
3.畫線 程式碼如下:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int x=StrToInt(Edit1->Text) ; Image1->Width = x*10 100 ;
Form1->Image1->Canvas->Rectangle(0,0,Form1->Image1->Width ,Form1->Image1->Height);
for(int i=0 ; i<=x ; i ){
Form1->Image1->Canvas->MoveTo(30 i*10 , 30);
Form1->Image1->Canvas->LineTo(30 i*10 , 100);
} } 問題來了,
1. Stretch=false ==>不能resize image , 但畫出來的線不會變形
2. Stretch=true ==>可以resize , 但Edit1裡的數字分別以5,10,20,200等多畫個幾次就完全變形了 , 只有在程式開啟後第一個執行的數字是正確的 請問這到底是發生什麼事了???????????????
|
cashyy
高階會員 發表:117 回覆:322 積分:212 註冊:2004-04-30 發送簡訊給我 |
引言: 程式目的: 在Image上的Canvas畫好幾條等間距的線(由Edit來決定要幾條) , Image的大小視線條數目而定. 程式流程: 1.決定Image大小 2.清除Image上的圖 3.畫線 程式碼如下: void __fastcall TForm1::Button1Click(TObject *Sender) { int x=StrToInt(Edit1->Text) ; Image1->Width = x*10 100 ; Form1->Image1->Canvas->Rectangle(0,0,Form1->Image1->Width ,Form1->Image1->Height); for(int i=0 ; i<=x ; i ){ Form1->Image1->Canvas->MoveTo(30 i*10 , 30); Form1->Image1->Canvas->LineTo(30 i*10 , 100); } } 問題來了, 1. Stretch=false ==>不能resize image , 但畫出來的線不會變形 2. Stretch=true ==>可以resize , 但Edit1裡的數字分別以5,10,20,200等多畫個幾次就完全變形了 , 只有在程式開啟後第一個執行的數字是正確的 請問這到底是發生什麼事了???????????????您好! 請試試下面的程式碼! int x,i; Image1->Picture = NULL; //請加入這一行 x = StrToInt(Edit1->Text); Image1->Width = x*10 100; Image1->Canvas->Rectangle(0,0,Image1->Width,Image1->Height); for(i=0;i記得要把Stretch=true喔! 發表人 - cashyy 於 2005/06/05 04:53:47 |
khaupe
一般會員 發表:28 回覆:25 積分:15 註冊:2003-06-30 發送簡訊給我 |
引言: 您好! 請試試下面的程式碼!感謝cashyy兄熱情解答 , 我的問題得到解決了 在昨晚的爬文中,我有注意到這篇似乎跟我的問題有關 http://delphi.ktop.com.tw/topic.php?topic_id=23467 但卻搞不懂為什麼 請問為什麼加上 Image1->Picture = NULL; 這一行就可以呢?? 它是什麼意思啊?? know how but dont know why是很痛苦的一件事....int x,i; Image1->Picture = NULL; //請加入這一行 x = StrToInt(Edit1->Text); Image1->Width = x*10 100; Image1->Canvas->Rectangle(0,0,Image1->Width,Image1->Height); for(i=0;i記得要把Stretch=true喔! 發表人 - cashyy 於 2005/06/05 04:53:47 |
cashyy
高階會員 發表:117 回覆:322 積分:212 註冊:2004-04-30 發送簡訊給我 |
引言:Image1->Picture = NULL; 這一行是把Image1->Picture 的圖片指定為"空"。 也可以看成是"清除圖片"引言: 您好! 請試試下面的程式碼!感謝cashyy兄熱情解答 , 我的問題得到解決了 在昨晚的爬文中,我有注意到這篇似乎跟我的問題有關 http://delphi.ktop.com.tw/topic.php?topic_id=23467 但卻搞不懂為什麼 請問為什麼加上 Image1->Picture = NULL; 這一行就可以呢?? 它是什麼意思啊?? know how but dont know why是很痛苦的一件事....int x,i; Image1->Picture = NULL; //請加入這一行 x = StrToInt(Edit1->Text); Image1->Width = x*10 100; Image1->Canvas->Rectangle(0,0,Image1->Width,Image1->Height); for(i=0;i記得要把Stretch=true喔! 發表人 - cashyy 於 2005/06/05 04:53:47 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |