tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
492
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    _Dome_ _Dome_ ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Beiträge
    42
    Hallo,
    Kann man die gleiche Variable z.b. "int wl1" in verschiedene Fomen einsetzen und deren Wert vo anderer Form verändern? Wenn ja dann sagt bitte wie.
     

  2. #2
    Supa Supa ist offline Mitglied Gold
    Registriert seit
    Jul 2004
    Ort
    Velbert
    Beiträge
    160
    Klar kannst Du!

    Wenn Du die Variable in der unit1.h im public Teil deklarierst und dann in der unit in der Du sie benuzten möchtest
    Code :
    1
    
    #include<unit1.h>
    hinzufügst, kannst du mit beispielsweise
    Code :
    1
    
    Form1->meinevariabel = 123;
    (angenommen unit1.h gehört auch zum Formular1) darauf zugreifen...

    mfg
     
    noch 'n bischen Werbung in eigener Sache: www.ice-only.de

  3. #3
    _Dome_ _Dome_ ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Beiträge
    42
    Im puplic-teil deklarieren?
    Ist die Unit puplic, wenn ich auf "Unit Header einschließen" klicke?

    Ich möchte die Variable "wetter", die sich in der Form "zeitfenster" befindet und in Unit3.cpp niedergeschrieben ist in Unit1.cpp der Form "Menu" änder. Ich habe des so versucht:
    randomize();
    zeitfenster->wetter=random(5);
    Muss ich jetzt in jeder Form die Variable definieren? Wahrscheinlich kommt hier des "Puplic" zum einsatz, aber wie?

    Schonmal Danke

    _Dome_
     

  4. #4
    Supa Supa ist offline Mitglied Gold
    Registriert seit
    Jul 2004
    Ort
    Velbert
    Beiträge
    160
    Ich hab echt Schwierigkeiten deinen Text zu verstehn!

    Du muss nicht die ganze Unit public machen, nur die Variable, die du Global benutzen möchtest.

    So wie ich das verstehe hast du zwei Formulare "zeitfenster" und "menu"

    zeitfenster basiert auf unit3.cpp und unit3.h
    ...und...
    menu basiert auf unit1.cpp und unit1.h

    Jetzt kannst du in unit3.h im Public-Teil (ist normal dick und fett markiert und dort steht "public:") einfach deine Variable deklarieren, auf die du aus anderen Units zugreifen können willst. z.B.
    Code :
    1
    
    String wetter;

    Wenn du die Variable jetzt von deinem Formular "menu" aus ändern willst, includierst du ganz oben in unit1.cpp die unit3.h indem du folgende Zeile hinzufügst:
    Code :
    1
    
    #include <unit3.h> //diese Unit muss sich im Projektordner befinden
    Du gibts quasi in unit1 bekannt, das auch noch ne unit3 existiert und der Compiler diese doch bitte schön beim compilieren beachten soll.

    Jetzt kannst du an beliebiger stelle in unit1 auf die Variable "wetter" mit
    Code :
    1
    
    zeitfenster->wetter = "xyz";
    zugreifen...

    eigentlich total einfach...
     
    noch 'n bischen Werbung in eigener Sache: www.ice-only.de

  5. #5
    _Dome_ _Dome_ ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Beiträge
    42
    Ich habe mich dusselig angestellt - sorry.
    Aber trotzdem danke für eure super Hilfe. - ist nun klar.
    Gruß
    _Dome_
     

  6. #6
    _Dome_ _Dome_ ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Beiträge
    42
    Habe es nun genau so gemacht, aber es geht nicht.
    Ich habe ein neues Projekt gestartet in dem ich nur mit zwei Formen arbeite.
    Jede Form hat einen Button und ein Edit Fenster.

    Nun will ich in Form1 ein public Varibale "int test" festlegen die beim klicken auf Button1 in Form1 den Wert "1" bekommt (also test=1). Wenn ich nun in Form2 auf Button2 klicke soll der Wert von "test" in Edit2 angezeigt werden.

    Ich habe des so in Unit1.h geschrieben:
    class TForm1 : public TForm
    {
    __published: // Von der IDE verwaltete Komponenten
    TButton *Button1;
    TEdit *Edit1;
    void __fastcall Button1Click(TObject *Sender);
    void __fastcall FormMouseMove(TObject *Sender, TShiftState Shift,
    int X, int Y);
    private: // Anwender-Deklarationen
    public: int test; // Anwender-Deklarationen
    __fastcall TForm1(TComponent* Owner);
    };
    Button1 in Form1:
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    test=1;
    }
    Der Code von Edit2:
    void __fastcall TForm2::Button2Click(TObject *Sender)
    {
    Edit2->Text=test;
    }
    Stell ich mich jetzt doof an oder warum klappt des nicht. Bitte hab gedult mit mir, ich bin eben noch ein Anfänger.
    Gruß
    _Dome_
     

  7. #7
    _Dome_ _Dome_ ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Beiträge
    42
    Ich habe ne lächerliche Kleinigkeit falsch gemacht (Änderung rot makiert):

    Button1 in Form1:
    Zitat:
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    test=1;
    }

    Der Code von Edit2:
    Zitat:
    void __fastcall TForm2::Button2Click(TObject *Sender)
    {
    Edit2->Text=Form1->test;
    }
    Nun greift Edit2 auf Form2 auf die Variable "test" in Form1 zu.

    Danke Danke Danke an euch alle

    Gruß
    _Dome_
     

Ähnliche Themen

  1. Zustand über mehere Funktionsaufrufe sichern über arguments.callee
    Von Thomas Darimont im Forum Javascript & Ajax
    Antworten: 0
    Letzter Beitrag: 15.01.11, 21:45
  2. Oracle: XML Aggregation über gleiche Tabelle
    Von User123 im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 11.10.10, 16:38
  3. In verschiedenen Formen, gleiche Elemente ansprechen!
    Von mmike im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 22.08.07, 16:28
  4. Differenz mit Select über 2 gleiche Tabellen
    Von Roefe68 im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 18.09.05, 16:18
  5. Antworten: 6
    Letzter Beitrag: 13.02.05, 23:48