2016-04-14 37 views
-2

我有德爾福7以下錯誤信息:德爾福未說明的標識符 '掃描線'

未說明的標識符 '掃描線'

我的用途: 使用 的Windows,消息,SysUtils單元,變體,類,圖形,控件,窗體, 對話框,菜單,按鈕,StdCtrls,ExtCtrls,數學,ComCtrls;

我的部分代碼:

screenshot(0,0,screen.Width,screen.Height,bmp); 
for a:=1 to screen.Height do begin 
pxl:=scanline[a-1]; 
end; 

其中PXL是PByteArray;

screenshot是捕捉選定區域成位圖...使用圖形庫

AFAIK掃描線的功能,但它不工作的過程..

我做錯了嗎?

感謝

+0

'ScanLine'是'TBitmap'的一種方法,而不是一個獨立的功能。請參閱[TBitmap,ScanLine。](http://docwiki.embarcadero.com/Libraries/Seattle/en/Vcl.Graphics.TBitmap.ScanLine)的文檔 - 鏈接適用於Delphi 10 Seattle,但它仍然與Delphi相關7.你期望'scanline [a-1]'能夠訪問什麼?精神像素? –

+0

我需要「看」什麼是在桌面上,當我找到想要的像素的顏色組合時,它會啓動一個程序 – Fero

+0

正如我所說的,'ScanLine'是'TBitmap'的一種方法。我向你展示了文檔。您的使用是一個簡單的閱讀文檔缺乏;你不能單獨使用'ScanLine',因爲它本身不存在。你的代碼訪問沒有任何內容的「掃描線」,這意味着除虛數像素之外沒有任何東西可以檢索掃描線。我假定你傳給'screenshot'的'bmp'是'TBitmap',所以使用它:'bmp.ScanLine'。 –

回答

1

[ScanLine][1]不是一個獨立的功能。這是一些圖形類的方法,如TBitmap。您需要這些類中的一個的實例才能調用ScanLine。 ScanLine也不會返回一個像素,而是一次返回一整行像素。

。假定在您的通話將bmpscreenshotTBitmap,你可以使用bmp.ScanLine[a - 1];,這將返回一個指向像素的整行(列)。