![]() |
Unerklärlicher Fehler: Compiler meldet E2217 ...
Hallo! Ich verwende folgende Klassendefinition:
Delphi-Quellcode:
Ein Projekt, in dem ich diese Komponente und andere zusätzlich Standard-Komponenten verwende, compiliert ohne Probleme. ABER: Sobald ich einen TButton zum Formular hinzufüge, kommt die Compiler-Fehlermeldung:
type
TSelection = class(TGraphicControl) private FSelRect: Trect; FHitRegion: Integer; FHitPoint: TPoint; FOldSelRectWidth: Integer; FOldSelRectHeight: Integer; FHorizontalMargins: Boolean; FFactorV, FFactorH: Extended; FSelFrameRect: TRect; FShowSize: Boolean; FTheImage: TImage; procedure SetShowSize(const Value: Boolean); procedure SetTheImage(const Value: TImage); protected procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); inline; procedure Paint; override; procedure Resize(Sender: TObject); procedure SetSelFrameMargins; inline; public Constructor Create(AOwner: TComponent); override; property SelFrameRect: TRect read FSelFrameRect; published property ShowSize: Boolean read FShowSize write SetShowSize; property TheImage: TImage read FTheImage write SetTheImage; end; "[DCC Fehler] Unit1.pas(13): E2217 Published-Feld 'Selection1' ist weder vom Typ class noch interface" und der Cursor springt zu Selection1: TSelection; in der Formular-Deklaration. Aber jetzt kommt's: Auch wenn ich den Button wieder entferne, kommt immer wieder die gleiche Compiler-Fehlermeldung!!! Die einzige Abhilfe ist die Erstellung eines völlig neuen Projektes mit den gleichen Komponenten, bis - ja bis zum Einfügen eines TButtons ... Wer weiß, was die Ursache des Problems sein könnte und wie man eine Lösung finden könnte? Edit: Wenn ich nach dem Entfernen des Buttons auch Vcl.StdCtrls aus der uses-Klausel entferne, dann verschwindet die Fehlermeldung wieder. Offenbar ist eine der Deklarationen in meiner Klasse inkompatibel mit Vcl.StdCtrls. Welche Regeln muss man bei der Klassendeklaration befolgen, um solche Inkompatibilitäten mit bestehenden Klassen zu vermeiden? |
AW: Unerklärlicher Fehler: Compiler meldet E2217 ...
versuch es doch mal mit TmySelection.
Aus der Delphi-Hilfe: Zitat:
K-H |
AW: Unerklärlicher Fehler: Compiler meldet E2217 ...
Ja,das war der Fehler, wie ich inzwischen herausgefunden habe.
Wäre es nicht gut, wenn die IDE eine Warnung beim Erstellen inkompatibler Klassennamen ausgeben würde. Die IDE kennt ja alle Suchpfade. Ich kann mir vorstellen, dass bei der Vielzahl von Klassennamen und Deklarationen dieser Fehler schon öfter mal auftritt. War schon auch öfter mal so bei etablierten professionellen Komponenten-Herstellern ... |
AW: Unerklärlicher Fehler: Compiler meldet E2217 ...
Seit wann sind die Fehlermeldungen, die man erhält sofort verständlich??:wink:
Gruß K-H |
AW: Unerklärlicher Fehler: Compiler meldet E2217 ...
Obwohl es ja nicht so ist, als wenn Delphi nichts hilft.
Zitat:
Gut, Emba könnte in solchen Fehlermeldungen mal die vollqualifizieren Namen nennen, dann wäre es eindeutiger. |
AW: Unerklärlicher Fehler: Compiler meldet E2217 ...
Zitat:
|
AW: Unerklärlicher Fehler: Compiler meldet E2217 ...
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 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