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

為何Image->Canvas->Pixels[x][y]失效?

尚未結案
shanesss
一般會員


發表:14
回覆:18
積分:6
註冊:2008-08-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-12-02 23:13:24 IP:219.85.xxx.xxx 訂閱
各位大大好,我寫了一段繪圖瞄點程式如下,
並將Run完的執行檔在各台電腦上測試(有vista也有XP系統),
其結果都很正常,
但是今天發現某一台XP系統執行到Image->Canvas->Pixels[x][y]會失效,
造成無法繪出圖形出來,
請問是哪裡的問題呢?

請各位大大指點一下

感謝


[code cpp]

unsigned int SEPARATE_LINE = 0;
TColor color_temp=(TColor)RGB(153,153,255);

//繪出圖片
for(unsigned int y=0;y<20;y ){
panel_y_point=(y-SEPARATE_LINE)*9;
for(unsigned int x=0;x<232;x ){
if(Image6->Canvas->Pixels[x][y_start_pixel y]==color_temp){ //似乎是這行不成立,造成無法繪圖出來

panel_x_point=x*6;
Image1->Canvas->Brush->Color=clRed;
Image1->Canvas->FloodFill(panel_x_point 3,panel_y_point 3,clBlack,fsSurface);
}
}
[/code]


aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-12-02 23:32:07 IP:122.120.xxx.xxx 訂閱
和這個問題很像:

http://delphi.ktop.com.tw/board.php?cid=168&fid=913&tid=99786

但也還是沒解。剛想了一下,是否和顯卡與其driver有關呢?

可以提供一下不行的那台的os是xp幾版,pro或是sp? 顯卡是什麼型號,driver是幾版?

我可以比對一下我遇到問題的那台是否有什麼相同的條件…
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
shanesss
一般會員


發表:14
回覆:18
積分:6
註冊:2008-08-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-12-09 13:12:40 IP:220.136.xxx.xxx 訂閱
aftcast大大你好,
不好意思這麼晚才回覆,
目前知道電腦配備為捷元P4 HT 系統為XP家庭版SP3, ,顯示卡是內建的,
這台使用Image->Canvas功能會失效,
但有些又會正常,
例如有Image1~Image6,
Image1~Image5正常,Image6就功能失效
不知是否為顯示卡相衝問題,

很是奇怪啊,

請問大大後來是如果解決的呢?

感激大大的回覆^^"


istillloving
高階會員


發表:33
回覆:182
積分:183
註冊:2008-10-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-12-10 16:14:16 IP:218.169.xxx.xxx 訂閱
有用過這個方法嗎


[code cpp]
Form1->Image6->Picture->Bitmap->Canvas->Pixels[i][j]
[/code]

------
恩...
shanesss
一般會員


發表:14
回覆:18
積分:6
註冊:2008-08-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-12-15 13:05:27 IP:220.136.xxx.xxx 訂閱
istillloving大大你好,

感謝您提供這個方法,
我剛剛試過還是不行,
不知是否為BCB6版本問題?
目前我是用SP1

謝謝



carstyc
資深會員


發表:16
回覆:254
積分:329
註冊:2003-07-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-12-15 13:42:29 IP:203.79.xxx.xxx 訂閱
誤會,自刪
編輯記錄
carstyc 重新編輯於 2009-12-15 13:45:09, 註解 無‧
istillloving
高階會員


發表:33
回覆:182
積分:183
註冊:2008-10-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-12-15 16:29:51 IP:140.127.xxx.xxx 訂閱
要不要你專案檔po出來我幫你試看看
------
恩...
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-12-16 10:51:24 IP:203.70.xxx.xxx 未訂閱
想想TImage使用的Canvas從何而來???

有沒有可能,繪圖動作過程
TImage.Picture.Bitmap.Width &
TImage.Picture.Bitmap.Height
數值已經被改變了???

試試在繪圖之前加上
Image1.Picture.Bitmap.Width := Image1.Width;
Image1.Picture.Bitmap.Height := Image1.Height;

[code delphi]

function TImage.GetCanvas: TCanvas;
var
Bitmap: TBitmap;
begin
if Picture.Graphic = nil then
begin
Bitmap := TBitmap.Create;
try
Bitmap.Width := Width;
Bitmap.Height := Height;
Picture.Graphic := Bitmap;
finally
Bitmap.Free;
end;
end;
if Picture.Graphic is TBitmap then
Result := TBitmap(Picture.Graphic).Canvas
else
raise EInvalidOperation.Create(SImageCanvasNeedsBitmap);
end;

[/code]
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#9 引用回覆 回覆 發表時間:2011-06-03 17:15:52 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-04-20 4:46:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!