Announcement

Collapse
No announcement yet.

Returnwert von aufgerufenem Fenster (Unit)

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

  • Returnwert von aufgerufenem Fenster (Unit)

    Ahoi zusammen,

    ich bin zurzeit mit meinem C++ Borland Builder 5.0 am rumbasteln und bin auf ein Problem gestossen. Ich frage mich, ob es moeglich ist, von einem Fenster eine direkte Rueckmeldung zu erhalten. Konkret moechte ich ein Fenster erzeugen, welches wie eine MessageBox funktioniert. Dieses Fenster enthaelt zwei Buttons, Ja und Nein. Wird nun ein Button gedrueckt sollte nun eine Rueckmeldung an die aufrufende Stelle erfolgen. Die Funktionsweise sollte wie bei einer normalen Funktion sein:

    int rueckwert = funktion(void);

    Mir schwebt sowas vor wie:

    int rueckwert = Form2->Show();

    Sicher lachen nun einige von Euch, jedoch reicht mein Latein noch nicht aus, um die Frage richtig beantworten zu koennen.

    Eine Ahnung scheine ich zu haben, weiss jedoch erstens nicht ob ich damit in die richtige Richtung ziele, und wenn es die richtige Richtung waere, wie ich dies Programmtechnisch (Syntaxmaessig) zu bewerkstelligen haette.

    Ich bin fuer jeden Hinweis empfaenglich.

    Vielen Dank im Voraus und

    viele Gruesse aus dem Datenmeer

    Fabian Suter

  • #2
    <PRE>
    falls es lediglich um Button-Rückgabe geht, funzt es bei mir so
    //
    void __fastcall TForm1:: .....
    {
    if (Form2->ShowModal() == mrOk)
    ShowMessage("Ok");
    else
    ShowMessage("Cancel");

    // bzw.
    // int modalresult = Form2->ShowModal();
    // if (modalresult == mrOk)

    }
    //-----------------------------------------------------------------

    void __fastcall TForm2::Button1Click(TObject *Sender)
    {
    ModalResult = mrOk;
    }
    --------
    void __fastcall TForm2::Button2Click(TObject *Sender)
    {
    ModalResult = mrCancel;
    }

    </PRE&gt

    Comment


    • #3
      Vielen Dank Lupus fuer Deine Antwort.

      Das war zu 90 Prozent das, wonach ich gesucht habe:-)

      Dies kann ich gut gebrauchen und es loest auf jeden Fall mein Problem.

      Ich frage mich nur noch (die restlichen 10 Prozent) ob es auch moeglich ist, einen String zurueckzusenden?

      Gruss

      Fabia

      Comment


      • #4
        Schreib einfach der zurückzuliefernden String in eine Public Variable "ReturnString" von Form2 und lies diesen in Form1 aus:

        if (Form1->ShowModal() == mrOk)
        ShowMessage(Form2->ReturnString);

        Bye - Pete

        Comment


        • #5
          Oder nutze eine globale Variable
          Christian

          Comment


          • #6
            ... oder bastele dir eine Funktion in die Form-Unit (am besten eine statische Methode der Formklasse), innerhalb der du eine Forminstanz anlegst und modal anzeigst, je nach ModalResult z.B. einen String zurückgibst und anschließend die Form tötest.
            <br>Ciao, Uli

            Comment

            Working...
            X