Hi zusammen
Ich hatte folgendes Konstrukt:
Delphi-Quellcode:
procedure TPdfScanFrame.TwainTwainAcquire(Sender: TObject; const Index: Integer;
Image: TBitmap; var Cancel: Boolean);
var XName : String; JpImage: TJpegImage;
begin
XName := Sender.ClassName;
FWidth := Image.Width;
FHeight := Image.Height;
Diese Prozedur feuert schliesslich ein Event, das von einem andern Frame behandelt wird. Das führt dazu, dass ich die Variable Image weiterreiche - und irgendwann war diese Variable nicht mehr vom Typ TBitmap, sondern TImage...
Klar: mein dämlicher Fehler- Der dann aber auch dazu führt, sprechendere Namen zu verwenden wie zum Beispiel ScannedBitmap anstelle von Image. Also habe ich obige Prozedur etwas umgeschrieben:
Delphi-Quellcode:
procedure TPdfScanFrame.TwainTwainAcquire(Sender: TObject; const Index: Integer;
ScannedBitmap: TBitmap; var Cancel: Boolean);
var XName : String; JpImage: TJpegImage;
// ScannedBitmap : TBitmap;
begin
// ScannedBitmap := TBitmap.Create;
// ScannedBitmap.Assign(Image);
XName := Sender.ClassName;
FWidth := ScannedBitmap.Width;
FHeight := Image.Height;
Wie man sieht, wollte ich erst ein neues Bitmap 'ScannedBitmap' erstellen und diesem das übergebene Image-Bitmap zuweisen, erinnerte mich aber dann, dass Parameter nicht gleich heissen müssen, aber zwingend an gleicher Position in der Parameterliste sein müssen. Also benannte ich den Parameter Image in ScannedBitmap um.
Die folge ist, dass in der Zuweisung
FWidth := ScannedBitmap.Width;
der Bezeichner ScannedBitmap als unbekannt markiert wird, obwohl er in der Parameterliste enthalten ist. Muss ich an dieser Stelle tatsächlich ein neues Bitmap erstellen?
Gruss
Delbor