2016-04-14 9 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は、グラフィックスライブラリを使用してビットマップ...

私の知る限りの走査線関数に選択されたエリアを引く手順ですが、それは動作しますしません。..

おかげ

+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'を単独で使うことはできません。あなたのコードは無意味の 'scanline'にアクセスします。つまり、仮想ピクセル以外からスキャンラインを取得するものはありません。私はあなたが 'screenshot'に渡している' bmp'が 'TBitmap'だと推測していますので、' bmp.ScanLine'を使ってください。 –

答えて

1

[ScanLine][1]は、スタンドアロン関数ではありません。これは、TBitmapなどのいくつかのグラフィックスクラスのメソッドです。 ScanLineを呼び出すには、これらのクラスのインスタンスが必要です。また、ScanLineは1つのピクセルを返しませんが、ピクセルの行全体を一度に返します。

screenshotへのお電話でのbmpTBitmapであると仮定すると、あなたは、ピクセルのライン全体(行)へのポインタを返すことになる、bmp.ScanLine[a - 1];を使用することができます。

関連する問題