Mehrdeutigkeit beim aktuellen Formular umgehen?



  • Hallo zusammen,

    wenn ich versuche, die Elemente einer Form über

    fooForm->...
    

    anzusprechen, bekomme ich einen Mehrdeutigkeitsfehler mit einer anderen Funktion. Im Prinzip sollte sich diese Problem ja mit

    Forms::fooForm->...
    

    lösen lassen. Allerdings kann ich diese Vorgehensweise in meinem aktuellen Beispiel nicht anwenden, da es sich hier um eine ActiveXForm handelt und die Mehrdeutigkeit zwischen der Form und Ihrer Implementation auftritt. Die Namen der Units bzw. die einzelnen Deklarationen kann ich ebenfalls nicht ändern, da es sich hierbei hauptsächlich um, vom BCB generierte, Units handelt und ich ungern in maschinenerstellten Files rumhandiere.

    Wie kann ich also im aktuellen Formular bei solch einem Fehler auf das aktuelle Formular verweisen?

    Danke

    Udo



  • Hi

    Wenn ich dich richtig verstanden habe, möchtest du den eigenen Zeiger der Klasse/Objekt haben, der this operator gibt dir die Adresse zurück.

    mfg pera



  • Hallo pera,

    ich brauche im Prinzip den Zeiger auf das Formular. this:: habe ich schon ausprobiert, allerdings kriege ich dann in diesem speziellen Fall (nachdem es sich um ein ActiveXFormular innerhalb eines COM-Servers handelt) nicht die Eigenschaften und Komponenten des Formulars sondern leider nur die Eigenschaften etc. seiner COM-Implementation, also die zughörigen Schnittstellen, etc.

    Wie kann ich das umgehen und wirklich direkt auf die Eigenschaften etc. der Form zugreifen.

    Danke

    Udo



  • wieso "this**::**"?

    -junix



  • Na ja, normalerweise kann man doch Mehrdeutigkeit mit dem Operator :: vermeiden. Und da ich mich in der Unit der Form befinde, dachte ich, ich krieg unter Umständen darüber Zugriff auf die Form. Allerdings krieg ich bloß die COM-Schnittstellen und nicht die Form selber. Und auch nur dann, wenn ich

    this-> und nicht this::

    eingebe.

    Hast Du nen Vorschlag, Junix?

    [ Dieser Beitrag wurde am 16.01.2003 um 16:37 Uhr von Darkheart editiert. ]



  • 1. mal "this" ist ein ZEIGER also nix mit this::
    2. hab ich dein Problem nicht ganz begriffen. Du kannst in einer Methode deines Ofrms ned auf die Funktionen des Forms zugreifen?

    -junix



  • Also gut,

    bei dem Formular handelt es sich um ein ActiveXFormular, daß in einen Com-Server (ne dll, ocx etc.) eingebettet ist. Will ich jetzt z.B. den Wert eines Editfeldes in diesem Formular innerhalb der Unit des Formulares auslesen, sollte das ja normalerweise über den herkömmlichen Weg gehen.

    Das Problem ist aber, ich krieg Schwierigkeiten mit der TypeLibrary des Com-Servers, weil dort eine Funktion mit dem Namen der Form existiert und weil ich zwangsläufig die TypeLibrary in der Form includen muß (sonst funktioniert der Com-Server nicht).

    Außerdem wird das Formular innerhalb der Formularunit nicht als "gewöhnliches" Formular deklariert, sondern als Implementation, damit andere Anwendungen das Formular verwenden können.

    Edit: Noch eins, ich muß innerhalb der Formularunit den Formularnamen verwenden, weil ich sonst die einzelnen Komponenten überhaupt nicht zu gesicht kriege. Tu ich das nicht, habe ich nur Zugriff auf die Formularimplementation des Formulars.

    [ Dieser Beitrag wurde am 16.01.2003 um 17:09 Uhr von Darkheart editiert. ]



  • Einfach "::" der Funktion voranstellen.



  • Danke WebFritzi, jetzt hauts hin ! 😃


Anmelden zum Antworten