Announcement

Collapse
No announcement yet.

Zeiger auf Funktionen

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

  • Zeiger auf Funktionen

    Moin moin,

    ich habe eine Klasse X der ich einen Zeiger auf eine Funktion im Hauptprogramm übergeben will :

    Im Hauptprogramm sieht die Funktion so aus :

    void Getroffen (TBall *x)
    {
    delete x;
    }

    In der Klasse TBall will ich diese Funktion nun aufrufen :


    if (Left == ********)
    Getroffen (this);

    Leider kriege ich die Syntax dafür nicht hin.

    Weiss jemand Rat ???

    Danke

    Henri

  • #2
    ich habe eine Klasse X der ich einen Zeiger auf eine Funktion im Hauptprogramm übergeben will :
    Nein, sieht eigentlich nicht so aus. Du hast eine Klasse, in der du die Methode einer anderen Klasse (der des Hauptprogrammes) aufrufen willst

    FormularName_des_HauptProgrammes->Getroffen(this);

    Dazu die Header des Hauptprogrammes includieren
    Christian

    Comment


    • #3
      in der Klasse Kugel habe ich folgende definition :
      Code:
      void (*Getroffen) (Kugel *);
      im Konstruktor der der Klasse folgendes :

      Code:
         __fastcall Kugel  (TWinControl *SF,TShape *SS1,TShape *SS2,void (*trifft)(Kugel *))
      {
         Getroffen = trifft;
      }
      in einer funktion der Klasse mache ich :

      Code:
         Getroffen (this);
      im Hauptprogramm gibt es eine Funktion

      Code:
      void TForm2::trifft (Kugel *b)
      {
      .
      .
      
      }
      Was ist nicht hinkriege (von der Syntax) ist der Aufruf des Konstruktors :

      Code:
            new Kugel (P1,S1,P2,&trifft);
      d.h. ich weiss nicht wie der Zeiger auf trifft übergeben wird.

      Comment


      • #4
        Nachtrag:

        wenn ich die Funktion trifft ausserhalb der Klasse TForm2 deklariere, funktioniert es einwandfrei, nützt mir aber nichts.

        Comment

        Working...
        X