Zugriff auf Elemente aus einer Funktion heraus



  • Hallo,

    ich habe vor 1 Tag mit C++ und GUIs angefangen und wollte mal einen kleinen Taschenrechner programmieren.

    Hier der Code:

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TCalc *Calc;
    //---------------------------------------------------------------------------
    __fastcall TCalc::TCalc(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    int zahl1 = 0, zahl2 = 0, ergebnis = 0;
    bool zahl1_set = false, zahl2_set = false;
    
    void rechne(void)
    {
       if(zahl1_set)
        {
          zahl2 = StrToInt(Edit1->Text);
          zahl2_set = true;
          ergebnis = zahl1+zahl2;
          Panel1->Caption = IntToStr(zahl1)+" + "+IntToStr(zahl2)+" = "+IntToStr(ergebnis);
        }
        else
        {
         zahl1 = StrToInt(Edit1->Text);
         zahl1_set = true;
         Panel1->Caption = IntToStr(zahl1)+" + ? =";
        }
    }
    
    void display_Number(int nr)
    {
     Panel1->Text = "test";
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TCalc::Button1Click(TObject *Sender)
    {
     display_Number(1);
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TCalc::Button2Click(TObject *Sender)
    {
     display_Number(2);
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TCalc::Button3Click(TObject *Sender)
    {
     display_Number(3);
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TCalc::Button4Click(TObject *Sender)
    {
     display_Number(4);
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TCalc::Button5Click(TObject *Sender)
    {
     display_Number(5);
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TCalc::Button6Click(TObject *Sender)
    {
     display_Number(6);
    }
    //---------------------------------------------------------------------------
    void __fastcall TCalc::Button7Click(TObject *Sender)
    {
     display_Number(7);
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TCalc::Button8Click(TObject *Sender)
    {
     display_Number(8);
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TCalc::Button9Click(TObject *Sender)
    {
     display_Number(9);
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TCalc::Button10Click(TObject *Sender)
    {
     display_Number(0);
    }
    //---------------------------------------------------------------------------
    

    Das Problem ist nun, dass der Compiler mir meldet, dass das Element Edit1 nicht vorhanden sei. (genau wie alle anderen elemente)
    Allerdings hat es noch funktioniert, als ich das Zeug noch nicht in seperaten Funktionen hatte.

    Meine Frage ist jetzt: Wie greife ich auf die Elemente zu?

    fat32



  • Entweder du schreibst davor jeweils ein

    Calc->
    

    oder machst die Funktionen gleich zu Memberfunktionen(Methoden) deiner Form indem du sie in der Header bekanntmachst.



  • Vielen Dank!

    das mit Calc-> hat geklappt.
    Ich google mal nach den erwähnten Memberfunktionen...

    fat32




Anmelden zum Antworten