請問關於Tcolor ....... |
答題得分者是:brook
|
xdio2
一般會員 發表:60 回覆:29 積分:17 註冊:2004-07-23 發送簡訊給我 |
請問
Tcolor是個型態還是個類別呢?
當使用Canvas->Pixels[x][y]
把裡面的值拿出來
都會用Tcolor形態的變數來放
那Tcolor是跟int float之類一樣的型態囉?
有時候我立了個變數int x
把他直接放到Canvas->Pixels[x][y]裡時
編譯器會跟我說發生int放入Tcolor形態的狀況
可是還是會讓我編譯完成 但當我寫Canvas->Pixels[x][y]=(Tcolor)x時
他卻說我這是錯誤的寫法
這是什麼意思阿? 怎麼不加(Tcolor)反而可以代入呢?
在灰階程式中還有個寫法
(Tcolor)RGB(gray,gray,gray)
這也是說把RGB這函式的回傳質變成(Tcolor)型態囉? 再請問另外一個問題
有時候我要把兩個Bmp圖複製,(假設已經存在Image1,跟Image2物件了)
我會寫
Image2->Picture->Bitmap=Image1->Picture->Bitmap
這樣就會把Image2的圖變成跟Image1物件中的一樣
那我寫成
Image2->Picture->Bitmap->Assign(Image1->Picture->Bitmap)
結果好像也是一樣
這兩種寫法有沒有差別在呢? 以上幾個零零碎碎的問題,
請了解的大大一題題耐心回覆一下
勞煩大家了,小弟初學BCB,不懂的東西很多
請大家指教,多謝~
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
1.但當我寫Canvas->Pixels[x][y]=(Tcolor)x時
他卻說我這是錯誤的寫法
A:Tcolor中c要大寫. 2.Image2->Picture->Bitmap->Assign(Image1->Picture->Bitmap)
把圖片真正複製到Image2. 3.Image2->Picture->Bitmap=Image1->Picture->Bitmap
Image2 只是把指標指過去而己.就像兩個人看同一幅畫,只要任何一個人在畫中劃兩筆,兩個人的畫都同時會變.
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
brook你好: : 3.Image2->Picture->Bitmap=Image1->Picture->Bitmap
: Image2 只是把指標指過去而己.就像兩個人看同一幅畫,只要任何一個人在
: 中劃兩筆,兩個人的畫都同時會變. 以上的回答可能有誤。Bitmap不是單純的member data,而是一個property。在做"寫入"(Assign)的動作時,事實上是呼叫了SetBitmap。BCB的Help有如下的property介紹 __property TBitmap* Bitmap = {read=GetBitmap, write=SetBitmap}; 而TPicture的SetBitmap則是呼叫了SetGraphic,參考以下的原始碼:
procedure TPicture.SetBitmap(Value: TBitmap); begin SetGraphic(Value); end;至於SetGraphic的程式碼如下: procedure TPicture.SetGraphic(Value: TGraphic); var NewGraphic: TGraphic; begin NewGraphic := nil; if Value <> nil then begin NewGraphic := TGraphicClass(Value.ClassType).Create; NewGraphic.Assign(Value); NewGraphic.OnChange := Changed; NewGraphic.OnProgress := Progress; end; try FGraphic.Free; FGraphic := NewGraphic; Changed(Self); except NewGraphic.Free; raise; end; end;可以看到SetGraphic在處理上在也是用了Assign的函式,差別在Changed事件的呼叫。 |
xdio2
一般會員 發表:60 回覆:29 積分:17 註冊:2004-07-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |