Announcement

Collapse
No announcement yet.

Kode Merhmals anrufen

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

  • Kode Merhmals anrufen

    Hallo,

    Ich bin bekannt mit eine C++ Funktion aber Ich ein Problemm
    mit folgendes:

    Ich will gerne ein Funktion schreiben dass z.B. mit Button1 und 2 auf Form1
    angerufen wird aber auch mit Button1 und 2 auf Form2...

    Wie kann Ich dass Bewerkstelligen...?

    Danke,

  • #2
    Ganz einfach: im OnClick-Ereignis auf dieselbe Funktion verweisen:
    Code:
    void __fastcall TForm1::Button1u2Click(TObject *Sender)
    {
        MachWas(Sender);
    }
    ...
    void __fastcall TForm2::Button1u2Click(TObject *Sender)
    {
        MachWas(Sender);
    }
    und dann irgendwo (z.B. in einer anderen Unit [MyHandlers.cpp]):
    Code:
    void __fastcall MachWas(TObject *Sender)
    {
       // hier mach was...
    }
    Vielleicht auch der Funktion 'MachWas' noch einen Pointer auf die jeweilige Form mitgeben, könnte hilfreich sein.

    Gruß Knut
    Zuletzt editiert von Knut Lohse; 26.09.2007, 16:29. Reason: erweitert

    Comment


    • #3
      Danke Knut, es funkioniert !

      Comment


      • #4
        Hallo,

        ich habe genau das gleiche Problem.
        Bei funzt das Beispiel leider nicht.

        Könnt Ihr da bitte mal etwas ausführlicher sein.

        Ich habe die Unit-Header eingeschlossen und in einer zusätzlichen Unit3.cpp
        die Funktion wie folgt angelegt.


        #pragma hdrstop


        #include "Unit3.h"
        #include "Unit1.h"
        #include "Unit2.h"

        //---------------------------------------------------------------------------

        #pragma package(smart_init)


        void __fastcall MachWas(TObject *Sender)
        {
        Form1->Label1->Caption="Hallo";
        Form2->Label1->Caption="HUHU";

        }


        und erhalte die folgende Meldung:

        [C++ Fehler] Unit1.cpp(21): E2268 Aufruf der undefinierten Funktion 'MachWas'


        Vielen Dank im Voraus
        Gruß Henry

        Comment


        • #5
          Hallo rai-suli,

          wahrscheinlich fehlt in Unit3.h die Zeile:
          Code:
          extern void __fastcall MachWas(TObject *Sender);
          oder Du hast Unit3.h nicht in Unit1.cpp eingebunden.
          Die Funktion muss natürlich allgemein bekannt gemacht werden.
          Alternativ kannst Du diese Zeile in jeder Unit hinschreiben, in der 'MachWas' benutzt wird, besser ist aber die Methode im Header der Unit, die die Funktion enthält.

          Gruß Knut
          Zuletzt editiert von Knut Lohse; 03.10.2007, 15:08. Reason: erweitert

          Comment


          • #6
            Danke Knut,

            die fehlende Zeile war der entscheidende Hinweis.
            Ich bin noch ziemlicher Anfänger.
            Ich programmiere zwar schon einige Jahre, aber C++ hab ich grad einen
            Fernkurs absolviert. Aber alles kommt da auch nicht rüber. Deshalb habe ich manchmal an so "banalen" Sachen große Probleme.

            Mit freundlichen Grüßen
            Gruß Henry

            Comment

            Working...
            X