全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:4099
推到 Plurk!
推到 Facebook!

發生了scan line index out of range的錯誤!!!

答題得分者是:taishyang
wd7142
一般會員


發表:18
回覆:19
積分:7
註冊:2004-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-24 22:30:10 IP:218.160.xxx.xxx 未訂閱
不好意思,想請問一下!!我使用了scanline的指令,在編譯時卻一直出現 scan line index out of range的錯誤,想請問一下為什麼會這樣子, 以下是我的程式碼: Byte* ptr; Graphics::TBitmap *TheBitmap; TheBitmap=Image1->Picture->Bitmap; for (int y=0; y < TheBitmap->Height; y ) { ptr = (Byte*)TheBitmap->ScanLine[y]; for (int x=0; x < TheBitmap->Width; x ) ptr[x]=(Byte)(255-ptr[x]); } Repaint(); 是
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-24 22:57:34 IP:140.135.xxx.xxx 未訂閱
wd7142您好: PO程式碼的方式請參考版規 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=46591 煩請修改,謝謝您的配合 針對您的問題,試試將 >
wd7142
一般會員


發表:18
回覆:19
積分:7
註冊:2004-01-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-24 23:17:31 IP:218.160.xxx.xxx 未訂閱
引言: wd7142您好: PO程式碼的方式請參考版規 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=46591 煩請修改,謝謝您的配合 針對您的問題,試試將 > < face="Verdana, Arial, Helvetica"> 不好意思,我找出來是在滑鼠的部份!!,在還沒載入圖片時所發生的 錯誤,那請問一下該怎麼改呢?
if(Image1->Picture->Bitmap->ScanLine[0]);
{
          StatusBar1->Panels->Items[0]->Text= "X=" IntToStr(X);
          StatusBar1->Panels->Items[1]->Text= "Y=" IntToStr(Y);
}
 
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-24 23:26:03 IP:140.135.xxx.xxx 未訂閱
您好:
引言: 不好意思,我找出來是在滑鼠的部份!!,在還沒載入圖片時所發生的 錯誤,那請問一下該怎麼改呢? if(Image1->Picture->Bitmap->ScanLine[0]); { StatusBar1->Panels->Items[0]->Text= "X=" IntToStr(X); StatusBar1->Panels->Items[1]->Text= "Y=" IntToStr(Y); }
要確定Image1是否有載入圖片可用
if (Image1->Picture->Bitmap->Empty)
  //..do something(Image1沒圖片)
順心 發表人 -
wd7142
一般會員


發表:18
回覆:19
積分:7
註冊:2004-01-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-24 23:34:42 IP:218.160.xxx.xxx 未訂閱
引言: 您好:
引言: 不好意思,我找出來是在滑鼠的部份!!,在還沒載入圖片時所發生的 錯誤,那請問一下該怎麼改呢? if(Image1->Picture->Bitmap->ScanLine[0]); { StatusBar1->Panels->Items[0]->Text= "X=" IntToStr(X); StatusBar1->Panels->Items[1]->Text= "Y=" IntToStr(Y); }
要確定Image1是否有載入圖片可用
if (Image1->Picture->Bitmap->Empty)
  //..do something(Image1沒圖片)
順心 發表人 - >< face="Verdana, Arial, Helvetica"> 多謝版大指教,已經ok了!!...真是太感謝你了~~
number999
一般會員


發表:0
回覆:3
積分:0
註冊:2004-02-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-20 00:43:05 IP:203.204.xxx.xxx 未訂閱
那請問我的程式碼如下:
    void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
  Graphics::TBitmap *TheBitmap;
  TheBitmap=Image1->Picture->Bitmap;
  if(TheBitmap->ScanLine[0])
   {
  StatusBar1->Panels->Items[0]->Text= "X=" IntToStr(X);
  StatusBar1->Panels->Items[1]->Text= "Y=" IntToStr(Y);
   }
//-------------------------------------------------------------------
  switch (mouse_operation) {
         case Pasting :
           TheBitmap->Canvas->Draw(0,0,OrgBitmap);
           X=(int)X*ScaleFactor;
           Y=(int)Y*ScaleFactor;
           TheBitmap->Canvas->Draw(X-StartX,Y-StartY,PasteBitmap);
           TheBitmap->Canvas->Pen->Mode=pmBlack;
           TheBitmap->Canvas->Pen->Width=2;
           TheBitmap->Canvas->Brush->Style=bsClear;
           TheBitmap->Canvas->Rectangle(X-StartX,Y-StartY,X-StartX PasteBitmap->Width,Y-StartY PasteBitmap->Height);
           break;
         case Drawing :
           TheBitmap->Canvas->Draw(0,0,OrgBitmap);
           X=(int)X*ScaleFactor;
           Y=(int)Y*ScaleFactor;
           TheBitmap->Canvas->Pen->Mode=pmCopy;
           TheBitmap->Canvas->Pen->Style=Pen_Style;
           TheBitmap->Canvas->Pen->Width=Pen_Width;
           TheBitmap->Canvas->Pen->Color=Pen_Color;
           switch (mouse_mode) {
             case Line_Enable:
                TheBitmap->Canvas->MoveTo(StartX,StartY);
                TheBitmap->Canvas->LineTo(X,Y);
                break;
             case Rect_Enable:
                TheBitmap->Canvas->Brush->Style=bsClear;
                TheBitmap->Canvas->Rectangle(StartX,StartY,X,Y);
                break;
             case Ellipse_Enable:
                TheBitmap->Canvas->Brush->Style=bsClear;
                TheBitmap->Canvas->Ellipse(StartX,StartY,X,Y);
            }
            break;
         case Masking :
           TheBitmap->Canvas->Pen->Mode=pmBlack;
           TheBitmap->Canvas->Pen->Width=2;
           TheBitmap->Canvas->Brush->Style=bsClear;
           TheBitmap->Canvas->Draw(0,0,OrgBitmap);
           X=(int)X*ScaleFactor;
           Y=(int)Y*ScaleFactor;
           TheBitmap->Canvas->Rectangle(StartX,StartY,X,Y);
           break;
         }    } 
同樣也會有"scan line index out of range"的錯誤 我試著照taishyang大大將 if(TheBitmap->ScanLine[0]) 改成 if (TheBitmap->Empty) //..do something(Image1沒圖片) 還是一樣的問題 不好意思可否為我解答一下 麻煩了!!! ps.想了好久 @@
seeing
初階會員


發表:49
回覆:131
積分:41
註冊:2002-11-07

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-20 15:25:13 IP:140.134.xxx.xxx 未訂閱
引言: 同樣也會有"scan line index out of range"的錯誤 我試著照taishyang大大將 if(TheBitmap->ScanLine[0]) 改成 if (TheBitmap->Empty) //..do something(Image1沒圖片) 還是一樣的問題 不好意思可否為我解答一下 麻煩了!!! ps.想了好久 @@
您好,如果改成跟taishyang版主說的一模一樣應該就不會有問題了 if (Image1->Picture->Bitmap->Empty)
number999
一般會員


發表:0
回覆:3
積分:0
註冊:2004-02-29

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-06-20 23:46:22 IP:203.204.xxx.xxx 未訂閱
謝謝seeing大大.. 已經可以了感謝感謝~~ 多謝您的熱心答覆 我檢查了一下整個程式 發現是其他地方"用來判斷圖片是否載入"的程式沒有一起修改到 改成跟taishyang版主講的判斷方式 真的可以了~~~^^b    不過還是有點小疑問 為什麼不能用
 
if(Image1->Picture->Bitmap->ScanLine[0]);
來判斷呢?? 是那裡的語法出了問題呢?? 發表人 - number999 於 2004/06/20 23:51:44
系統時間:2024-05-21 4:12:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!