線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1604
推到 Plurk!
推到 Facebook!

Image上Canvas放大的問題

答題得分者是:cashyy
khaupe
一般會員


發表:28
回覆:25
積分:15
註冊:2003-06-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-05 03:20:51 IP:218.165.xxx.xxx 未訂閱
程式目的: 在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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-05 04:49:24 IP:59.104.xxx.xxx 未訂閱
引言: 程式目的: 在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
    khaupe
    
一般會員


發表:28
回覆:25
積分:15
註冊:2003-06-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-05 14:20:13 IP:218.165.xxx.xxx 未訂閱
引言: 您好! 請試試下面的程式碼!
  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    感謝cashyy兄熱情解答 , 我的問題得到解決了    在昨晚的爬文中,我有注意到這篇似乎跟我的問題有關
http://delphi.ktop.com.tw/topic.php?topic_id=23467
但卻搞不懂為什麼    請問為什麼加上
Image1->Picture = NULL;
這一行就可以呢??  它是什麼意思啊??
know how but dont know why是很痛苦的一件事....     
        
cashyy
高階會員


發表:117
回覆:322
積分:212
註冊:2004-04-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-07 15:23:31 IP:59.104.xxx.xxx 未訂閱
引言:
引言: 您好! 請試試下面的程式碼!
  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    感謝cashyy兄熱情解答 , 我的問題得到解決了    在昨晚的爬文中,我有注意到這篇似乎跟我的問題有關
http://delphi.ktop.com.tw/topic.php?topic_id=23467
但卻搞不懂為什麼    請問為什麼加上
Image1->Picture = NULL;
這一行就可以呢??  它是什麼意思啊??
know how but dont know why是很痛苦的一件事....     
Image1->Picture = NULL; 這一行是把Image1->Picture 的圖片指定為"空"。 也可以看成是"清除圖片"
系統時間:2024-06-29 23:05:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!