Announcement

Collapse
No announcement yet.

Eigene Ereignisse erstellen

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

  • Eigene Ereignisse erstellen

    HI,<p>

    Ich versuche eine eigen Komponete zu erstellen.<br>
    Die Implementierung von Eigenschaften ist mir dank,<br>
    Borland-Hilfe schon gelungen.<br>
    Nur die Implementierung von "Eigenen" Ereignissen<br>
    verstehe ich nicht.<p>

    Ich möchte z.B. ein OnError Event erstellen, das verschiedene<br>
    Error-Codes ausgibt.<p>

    Könnte mir Bitte jemand ein kurzes Beispiel geben,<br>
    mit Defination, Deklaration und Auslösen des Events.<p>

    Danke im voraus<p>

    Maik

  • #2
    hi,

    um ein eigenes ereignis auszulösen mußt du erstmal diese funktion als typ deklarieren. nennen wir diesen typ mal <b>TOnErrorEvent</b>. mit diesem typ deklarierst du, z.b. im <b>privat</b> abschnitt, eine variable <b>TOnErrorEvent FOnErrorEvent</b>. unten im <B>__published</b> abschnitt gibst du jetzt dein ereignis an, z.b. <br><br><b>__property TOnErrorEvent OnError = {read=FOnErrorEvent, write=FOnErrorEvent};</b><br><br>um jetzt das ereignis auszulösen, mußt du noch im code an der stelle wo es ausgelöst werden soll die funktion mit <b>FOnErrorEvent(this, 1);</b> aufrufen. wobei die 1 der errorcode sei soll, als beispiel für die funktion. die parameter kannst du gestallten wie du willst.<br><br>falls das nicht so ganz geht, sorry den das habe ich mir so aus dem kopf gezogen. müßte aber gehen, ansonsten kommentar und wenn du willst kann ich dir auch ein richtiges beispiel reinsetzen.<br><br>bis dann und viel spaß!!

    Comment


    • #3
      Hallo auch,<p>

      erstmal vielen dank für die Antwort Bernhard.<br>
      Ich habe mal ein wenig "rum" probiert, daß ganze funktioniert<br> erst wenn man in der Headerdatei der neuen Klasse, im oberen<br> Abschnitt, den neuen Ereignisstyp TOnErrorEvent deklariert.<br>
      Das ganze sieht dann so aus:<p>

      typedef void __fastcall (__closure *TOnErrorEvent)(System::TObject* Sender, int ErrorCode);<p>

      der rest funktioniert genau wie oben beschrieben.<p>

      Grüße Maik ;&gt

      Comment

      Working...
      X