Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Verständnisfrage zu Parameter (https://www.delphipraxis.net/199732-verstaendnisfrage-zu-parameter.html)

Delbor 15. Feb 2019 14:45

Delphi-Version: 5

Verständnisfrage zu Parameter
 
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

Delphi-Quellcode:
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

Uwe Raabe 15. Feb 2019 15:20

AW: Verständnisfrage zu Parameter
 
Du hast die Parameterliste auch im Interface-Teil angepasst?

hoika 15. Feb 2019 15:20

AW: Verständnisfrage zu Parameter
 
Hallo,
ist das wirklich Copy&Paste aus deinem Quellcode?
Das sieht zumindestens richtig aus.
Hast du auch das Interface angepasst?

Mach mal testweise als Parameter B1 statt ScannedBitmap.

Jumpy 15. Feb 2019 15:35

AW: Verständnisfrage zu Parameter
 
Müsste nicht eher
Code:
FHeight := Image.Height;
als Fehler erkannt werden?

Delbor 15. Feb 2019 15:44

AW: Verständnisfrage zu Parameter
 
Hi zusammen

Zitat:

Hast du auch das Interface angepasst?
Ich hätte zumindest geschworen (und das wäre glatter Meineid gewesen...), dass ichs getan habe, weil ich mich wiedermal mit Events befasse und mich da alles andere als Sattelfest fühle. Allerdings machten mir die diesmal nicht die kleinsten Probleme.

Danke für eure schnellen Antworten!

Zitat:

Zitat von Jumpy (Beitrag 1425661)
Müsste nicht eher
Code:
FHeight := Image.Height;
als Fehler erkannt werden?

Die Zeile darüber war mir auch ohne Kompilierungsversuch markiert worden. Diese hingegen wäre erst bei einem Versuch erkannt worden. Natürlich sind die jetzt angepasst.

Gruss
Delbor


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz