AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Unerklärlicher Fehler: Compiler meldet E2217 ...
Thema durchsuchen
Ansicht
Themen-Optionen

Unerklärlicher Fehler: Compiler meldet E2217 ...

Ein Thema von PeterPanino · begonnen am 31. Aug 2012 · letzter Beitrag vom 31. Aug 2012
Antwort Antwort
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#1

Unerklärlicher Fehler: Compiler meldet E2217 ...

  Alt 31. Aug 2012, 21:54
Hallo! Ich verwende folgende Klassendefinition:
Delphi-Quellcode:
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;
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:

"[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?

Geändert von PeterPanino (31. Aug 2012 um 22:10 Uhr) Grund: Hinzufügung von Informationen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Unerklärlicher Fehler: Compiler meldet E2217 ...

  Alt 31. Aug 2012, 22:27
versuch es doch mal mit TmySelection.

Aus der Delphi-Hilfe:
Zitat:
TSelection is used internally in Delphi to hold the start and end position of a selection.
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Unerklärlicher Fehler: Compiler meldet E2217 ...

  Alt 31. Aug 2012, 22:38
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 ...
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Unerklärlicher Fehler: Compiler meldet E2217 ...

  Alt 31. Aug 2012, 22:48
Seit wann sind die Fehlermeldungen, die man erhält sofort verständlich??

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.122 Beiträge
 
Delphi 12 Athens
 
#5

AW: Unerklärlicher Fehler: Compiler meldet E2217 ...

  Alt 31. Aug 2012, 23:02
Obwohl es ja nicht so ist, als wenn Delphi nichts hilft.

Zitat:
und der Cursor springt zu Selection1: TSelection; in der Formular-Deklaration
Man hätte ja mal nachgucken können, welches TSelection er genau meint. (Code Insigt wurde nicht umsonst erfunden)

Gut, Emba könnte in solchen Fehlermeldungen mal die vollqualifizieren Namen nennen, dann wäre es eindeutiger.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (31. Aug 2012 um 23:08 Uhr)
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Unerklärlicher Fehler: Compiler meldet E2217 ...

  Alt 31. Aug 2012, 23:03
Seit wann sind die Fehlermeldungen, die man erhält sofort verständlich??

Gruß
K-H
Nun, es ist ja anzunehmen (oder wenigstens zu hoffen), dass die kollektive Intelligenz der Programmierer-Gattung im Laufe der Entwicklung ja auch einmal zunimmt, oder ...?
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Unerklärlicher Fehler: Compiler meldet E2217 ...

  Alt 31. Aug 2012, 23:07
Man hätte ja mal nachgucken können, welches TSelection er genau meint.
Mach ich beim nächsten Mal. Versprochen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:26 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