Announcement

Collapse
No announcement yet.

Eventfunktion einer anderen Form aufrufen

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

  • Eventfunktion einer anderen Form aufrufen

    Hallo,
    mit folgendem Code kann ich die KeyDown-Eventfunktion in einer Form(1) aufrufen und z.B. ein ENTER in der ComboBox simulieren.

    Form1:
    ...
    __published:
    void __fastcall ComboBoxMaKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
    ...
    void __fastcall TForm1::Button1Click(TObject * Sender)
    {
    unsigned short ENTER = 13;
    TShiftState shift;
    ComboBoxMaKeyDown(this, ENTER, shift);
    }

    Wenn ich von Form1 einen Event in einer 2ten TForm (Form2) auslösen möchte:

    Form2:
    ...
    __published:
    void __fastcall Edit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
    ...
    Form1:
    void __fastcall TForm1::Button1Click(TObject * Sender)
    {
    unsigned short ENTER = 13;
    TShiftState shift;
    Form2->Edit1KeyDown(this, ENTER, shift);
    }

    passiert nichts. Übersetzten lässt sich das, aber nichts geht!
    Wie geht das?

  • #2
    Du musst die in Form2 angelegte Instanz an Form1 übergeben
    Christian

    Comment


    • #3
      Sorry hab nicht kapiert was das bedeuted.
      in Form1.h habe ich #include "[HeaderForm2].h"
      in der Hilfe steht: "The visibility rules for published members are identical to those of public members."
      Soweit passt auch alles.
      Wie meinst du das? Wie Instanz übergeben?
      TEdit *tme = new TEdit(this);
      tme->OnKeyDown = Form2->Edit1KeyDown; // wie dann hier die Paramter (Key/Shiftstate) übergeben?
      oder sowas? Hast du ein Beispiel?

      Comment


      • #4
        Wenn du die Header eingebunden hast ist das richtig. Und sollte auch funktionieren.
        Setze einen Breakpoint und prüfe, ob du in der Methode landest

        Nein, Beispiele habe auch nicht mehr...Otto Normalverbraucher kann sich diese Produkte nicht mehr leisten bzw. sollte sie sich nicht mehr leisten.
        Zuletzt editiert von Christian Marquardt; 28.12.2013, 12:28.
        Christian

        Comment


        • #5
          Ok, habs gefunden. Es lag an einem vorhergehenden Form2->ShowModal Aufruf mit Show funktioniert das.
          Danke für die Hilfe.

          Comment


          • #6
            schön, das es geht
            Christian

            Comment

            Working...
            X