Announcement

Collapse
No announcement yet.

Wie kann ich ein Ereignis verbergen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie kann ich ein Ereignis verbergen?

    Hallo,<BR><BR>wie kann ich ein Ereignis, welches in der Vorfahren-Klasse unter Protected deklariert wurde verbergen?<BR>Folgendes funktioniert leider nicht:<PRE>type TTestButton = class (TComboEdit)
    private
    property OnButtonClick;
    end;</PRE>Stephan H.<BR>

  • #2
    Probier mal OnButtonClick als virtual zu deklarieren. Ich habe bemerkt das es einen Unterschied der Sichtbarkeit zwischen virtuellen und nicht virtuellen Methoden gibt. abstract bietet sich auch an, da dann keine Implementation benoetigt wird

    Comment


    • #3
      "Normalerweise" kann man eine Deklaration nur in ihrer Sichtbarkeit "anheben". Dies trifft für alles zu, egal ob Methode, Field oder Property. D.h. eine einmal als protected deklarierte Property ist immer als protected Property in allen abgeleiteten Klassen sichtbar. Hier entsteht auch ein "großes Mißverständnisss" der Programmierer. Wenn nämlich z.b. eine protected virtual Method in einer abgeleiteten Klasse auf private virtual override deklariert wird, dann bleibt diese Methode trotzdem sichtbar. NICHT die überschriebene ist sichtbar sondern die Ausgangsmethode der Basisklasse. Ein Aufruf dieser Methode wird aber die unsichtbare virtuelle Methode aufrufen da sie virtual ist und überschrieben wurde.<br>

      Gruß Hage

      Comment


      • #4
        Vielen Dank,<BR><BR>so etwas habe ich bereits befürchtet. Wahrscheinlich werden daher in den Custom-Klassen die meisten Eigenschaften und Methoden unter protected deklariert, so dass die letzte zu vererbende Klasse sehr viele fehlenden, notwendigen o. wünschenswerten Eigenschaften/Methoden veröffentlicht.<BR><BR>Hagen, von dir habe ich schon oft Beiträge in diesem Forum gesehen, da würde mich mal interressieren, was du denn so programmierst (Komponentenentwicklung, Anwendungs-, oder vielleicht beides)?<BR><BR>Gruß Stephan<BR&gt

        Comment


        • #5
          Projektleiter Entwicklung, und ja eigentlich fast alles, selbst SmartCards mit Basic, Assembler. Aber meine berufliche Arbeit konzentriert sich auf visuelle Personal-/Planungs-/Zeit-/Abrechnungs-/Erfassungs- Software für den ambulanten und stationären Pflegebereich und mit viel Spaß nebenbei noch Lehrlinge stressen

          Gruß Hagen

          PS: Übrigens nach meiner Erfahrung wird man bei großen Anwendungen sowieso nicht um die Entwicklung seiner eigenen Komponenten drumherum kommen. 75% aller von uns genutzten Komponenten, Tools, Libraries sind Eigenentwicklungen. Z.b. die Komponentenpalette unserer visuellen Komponenten umfasst ca. 40 Eigenentwicklungen oder Ableitungen von Standardkompos.

          &#10

          Comment

          Working...
          X