OnEnter-Event manuell auslösen



  • Hi,

    ich hab ein PageControl auf meinem Form. Über dieses PageControl kann ich auf das aktuelle TabSheet zugreifen. Um mir Arbeit zu sparen möchte ich gerne beim Wechselns des Tabs das OnEnter-Event des aktuellen Tabs auslösen.
    Gedacht ist sowas:

    if (this->PageControl1->ActivePage->OnEnter) {
      this->PageControl1->ActivePage->OnEnter();
    }
    

    Nun funktioniert das ja so nicht, weil mir OnEnter ein TNotifyEvent liefert. Wie kann ich denn die Funktion dahinter auslösen, ohne ihren Namen zu kennen?



  • warum verwendest du nicht das OnShow-Ereignis?
    indirekt kannst du damit auch das OnEnter auslösen, indem du z.B. den Focus auf eines der TabSheet-Elemente setzt oder die Caption änderst. d.h. wenn du im OnShow auf ein Element des Tabs zugreifst gerieft das OnEnter-Ereignis



  • Ok, OnShow() tut im Prinzim schon das was es soll. Ich bin über ein Frame gekommen und das hat leider kein OnShow....



  • wenn es nur eine Funktion ist, dann kannste die einfach so aufrufen (das hier wäre ein Click-Eventhandler):

    button1Click(Sender/NULL);
    

    greetz KN4CK3R



  • Wenn ich den Funktionsnamen (bzw. Pointer) kennen würde, könnte ich das. Ich kann aber nur auf die TNotifyEvent Eigenschaft zugreifen...



  • Hallo

    Ich verstehe dein Problem nicht. Wenn der Event-Property bereits eine gültige Methode zugewiesen ist, dann hast du doch deinen Pointer. Am Beispiel von TButton :

    Button1->OnClick(0); // Löst die Methode hinter dem Event OnClick aus, mit 0 als Sender
    

    bis bald
    akari


Anmelden zum Antworten