Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Fehlermeldung durch Rave-Komponente: inkompatible Typen (https://www.delphipraxis.net/70119-fehlermeldung-durch-rave-komponente-inkompatible-typen.html)

AppleFan 25. Mai 2006 12:07


Fehlermeldung durch Rave-Komponente: inkompatible Typen
 
Hallo, folgendes Problemchen:
Delphi-Quellcode:
uses ..., Printers, ...
...
if Printer.Orientation = poPortrait then ...
...
soweit alles ok, keine Fehlermeldung, aber mit Rave-Komponente (und somit uses rpDefine) auf der Form und unverändertem Code:

Fehler: Inkompatible Typen: TPrinterOrientation und TOrientation

Wie komme ich aus der Nummer raus ? OK, mit Ord(Printer.Orientation) geht es auch, aber irgendwie ist das doch blöde !

Hawkeye219 26. Mai 2006 00:38

Re: Fehlermeldung durch Rave-Komponente: inkompatible Typen
 
Hallo,

ich kenne die Rave-Komponente nicht, vermute aber, daß in der Unit rpDefine eine Konstante mit Namen poPortrait vom Typ TOrientation definiert ist. Der Compiler arbeitet bei der Auflösung von Bezeichnernamen die Uses-Liste von hinten nach vorne ab. In deinem Fall findet er somit die Konstante aus der Rave-Unit, die natürlich nicht kompatibel zur Printer-Eigenschaft Orientation ist.
Es gibt zwei mögliche Lösungen:
  • Führe die Unit Printers in der Uses-Anweisung hinter rpDefine auf. In diesem Fall kann aber an einer anderen Stelle im Programm eine Fehlermeldung erscheinen, wenn eine Konstante aus der Rave-Unit benötigt wird.
  • Gib den vollständigen Namen der Konstante an: Printers.poPortrait.
Den Weg über Ord würde ich nicht einschlagen. Der Compiler wird es vielleicht übersetzen, allerdings wird u. U. nicht der gewünschte Vergleich durchgeführt, weil sich die Ordinalwerte der gleichnamigen Konstanten aus Printers und rpDefine unterscheiden können.

Gruß Hawkeye

AppleFan 26. Mai 2006 10:26

Re: Fehlermeldung durch Rave-Komponente: inkompatible Typen
 
Hallo,

Danke sehr, das war ein guter Hinweis: "vollständiger Name" !
(eigentlich auch logisch, da hätte ich auch selber drauf kommen müssen)
:hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 Uhr.

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