Delphi.NET - IDE verwirft Propertys eines Components

Peter Mössinger

Grünschnabel
Hallo,

ich benutze Borland Delphi mit der Sprache Delphi.NET und scheine auf das gleiche Problem gestoßen zu sein, das schon einmal in diesem Posting angesprochen wurde: http://www.tutorials.de/forum/net-w...erwirft-propertys-eines-components-hilfe.html

Eine Property vom Typ einer in einem Namespace selbst definierten Enumeration wird in der IDE fehlerhaft gemappt, so dass, wenn man in der IDE einen Wert auswählt, richtiger .NET Code erzeugt wird (InitializeComponent-Methode). Dieser Code wird aber nicht mehr richtig in die IDE zurückgemappt.

Grund ist der Namespace, in dem der Enumerations-Typ definiert wurde.

Im Code wird folgendes generiert:
Self.Klasse.Attribut := Namespace.EnumTyp.EnumWert;

Wenn es nur
Self.Klasse.Attribut := EnumTyp.EnumWert;
wäre, dann wäre alles OK.

Habt Ihr eine Ahnung, wie ich dieses Problem gelöst bekomme?

Danke und Grüße,

Peter Mössinger
 
Hallo,

Oh, Mann. Ich hab' die Lösung mit dem Tipp im Artikel, auf den ich mich bezogen habe, selbst gefunden. So ein Mist.

Man muss die Enums in einem anderen Namespace definieren. Außerdem ist es tödlich, wenn der Enums-Namespace einen Punkt im Namen hat. Ein Punkt und es geht nicht mehr.

Alles etwas unschön aber es geht endlich.

Grüße,

Peter
 
Hi Peter!

Um genau zu sein war mein Problem das sich die Enumeration innerhalb meines Controls befunden hatte.
Als ich die Enumeration aber innerhalb des Namespaces definiert hab, hatte ich das Problem nicht mehr.
Das meintest sicher mit "Außerdem ist es tödlich, wenn der Enums-Namespace einen Punkt im Namen hat".
 
Nicht direkt. Meine Enumeration war schon außerhalb der Komponente definiert. Der Name des Namespaces war aber so etwas wie:

Firma.Windows.Komponente

Als ich die Enums nun in einen eigenen Namespace namens:

Enums

ausgelagert hatte, ging es. Mit dem Namespace-Namen:

Firma.Enums

klappt es wiederum nicht.

Vielleicht gibt es hier auch Unterschiede zwischen Delphi und VisualStudio, aber das Problem klingt doch sehr ähnlich und Dein Tipp hat mein Problem gelöst. :)

Peter
 
Seltsam. Mein Enum befindet sich innerhalb von mehreren SubNameSpaces.
Muss aber trotzdem den kompletten Namen im nachhinein bei dem Obfuscating (PreEmptive DotFuscator) excluden,
damit er aus den Resourcen geladen werden kann.

Hajo, schön dass das jetzt geklärt ist. :D
 
Zurück