2016-04-14 15 views
-2

ich habe die folgende Fehlermeldung in Delphi 7:delphi nicht deklarierter Bezeichner: 'Scanline'

nicht deklarierter Bezeichner: 'Scanline'

meine Anwendungen: verwendet Windows Messages, SysUtils, Varianten, Klassen, Grafiken, Steuerelemente, Formulare, Dialoge, Menüs, Schaltflächen, StdCtrls, ExtCtrls, Mathe, ComCtrls;

meinen Teil des Codes:

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

wo pxl PByteArray ist;

screenshot ist ein Verfahren, das den ausgewählten Bereich in eine Bitmap zu kontrollieren ...

AFAIK Scanline-Funktion Grafikbibliothek verwenden, aber es funktioniert nicht ..

Was mache ich falsch?

Dank

+0

'ScanLine' ist eine Methode von' TBitmap', keine eigenständige Funktion. Weitere Informationen finden Sie in der Dokumentation zu [TBitmap, ScanLine.] (Http://docwiki.embarcadero.com/Libraries/Seattle/de/Vcl.Graphics.TBitmap.ScanLine) - der Link ist für Delphi 10 Seattle, aber für Delphi immer noch relevant 7. Was genau erwarten Sie von 'scanline [a-1]'? Psychische Pixel? –

+0

Ich muss "sehen", was auf dem Desktop ist und wenn ich die gewünschte Farbkombination von Pixeln finde, wird es eine Prozedur auslösen – Fero

+0

Wie gesagt, 'ScanLine' ist eine Methode von' TBitmap'. Ich habe dir die Dokumentation gezeigt. Ihre Verwendung ist ein einfaches Fehlen des Lesens der Dokumentation; Sie können 'ScanLine' nicht selbst verwenden, da es nicht selbst existiert. Ihr Code greift auf "Scanline" von nichts zu, was bedeutet, dass es außer einer Imagination keine Scanline gibt. Ich nehme an, dass die 'bmp', die du an' screenshot' übergibst, eine 'TBitmap' ist, also benutze sie:' bmp.ScanLine'. –

Antwort

1

[ScanLine][1] ist keine eigenständige Funktion. Es ist eine Methode einiger Grafikklassen wie TBitmap. Sie benötigen eine Instanz einer dieser Klassen, um ScanLine aufzurufen. ScanLine gibt auch kein einzelnes Pixel zurück, sondern eine ganze Reihe von Pixeln gleichzeitig.

der Annahme, dass die bmp in Ihren Anruf screenshot ein TBitmap ist, können Sie bmp.ScanLine[a - 1]; verwenden, die einen Zeiger auf eine ganze Zeile (Reihe) von Pixeln zurückkehren würde.