Variable von Unit1 an Unit2



  • akari schrieb:

    Hallo

    Durch das Form1 am anfang denkt der Computer ja, das das nächste auch alles zur Form1 gehört. Allerdings möchte ich die Variable von dort beziehen, von wo aus ich die Form1 beeinflusse.

    😕

    bis bald
    akari

    Also dadurch, das mein Befehl mit

    Form1->

    Anfängt, sagt man dem Computer ja, das die nächsten teile des Befehls alle mit Form1 zutun haben, dem zufolge auch die Variable Titel. Aber diese Variable gehört zu Form2. des halb wird

    = Form2->Titel;

    geschrieben. Da ich diesen Befehl

    Form1->Button1->Caption = Form2->Titel;

    in die Unit2.cpp schreib scheint das aber nicht zu funktionieren.

    War das jetzt besser erklärt?

    Die Variable hab ich natürlich in der Unit2.h Deklariert(?)



  • Hallo

    in die Unit2.cpp schreib scheint das aber nicht zu funktionieren.

    Was funktioniert niucht?
    Die Zeile kopiert den Inhalt der Variable "Titel" in die Caption des Buttons von Form1. Genau das was er machen soll. Was soll er denn deiner Meinung nach machen?

    bis bald
    akari



  • akari schrieb:

    Hallo

    in die Unit2.cpp schreib scheint das aber nicht zu funktionieren.

    Was funktioniert niucht?
    Die Zeile kopiert den Inhalt der Variable "Titel" in die Caption des Buttons von Form1. Genau das was er machen soll. Was soll er denn deiner Meinung nach machen?

    bis bald
    akari

    genau das, aber das tut es nicht.



  • Hallo

    Tja, dann kann ich dir auch nicht helfen... 🙄

    bis bald
    akari



  • Ich hab grad nen ähnliches Problem deshalb hab ich gedacht ich schließe mich mal dem Thread an...

    Was muss ich machen wenn ich in meiner Form1 String Benutzername deklariert habe
    Und jetzt in Form2 ihm den Wert "Test" zuweisen will???

    Ich kann ja schlecht Form1->Benutzername machen oder???



  • Hallo

    Ich kann ja schlecht Form1->Benutzername machen oder???

    Warum sollte das nicht gehen? Der Aufbau oben in meinem Code muß nur etwas verändert werden, dann ist das auch so rum möglich.

    bis bald
    akari



  • Habs probiert bekomme leider die Meldung:
    "Unresolved external _Form1 referenced from "[PFAD] Project1.obj"

    Unit1.h
    //---------------------------------------------------------------------------
    
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <ComCtrls.hpp>
    #include <Menus.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// Von der IDE verwaltete Komponenten
            TListBox *ListBox1;
            TButton *Button1;
            TMainMenu *MainMenu1;
            TMenuItem *Einstellungen1;
            TMenuItem *LoginDaten1;
    private:	// Anwender-Deklarationen
    public:		// Anwender-Deklarationen
    String Benutzername;
            __fastcall TForm1(TComponent* Owner);
    
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    
    Unit4.cpp
    
    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit4.h"
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm4 *Form4;
    //---------------------------------------------------------------------------
    __fastcall TForm4::TForm4(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm4::Button1Click(TObject *Sender)
    {
    Form1->Benutzername = Edit1->Text;
    }
    //---------------------------------------------------------------------------
    

    die Unit.h sind gegenseitig eingebunden!

    Schonmal danke für die schnelle Hilfe!



  • Ist unter View-> Units Unit1 oder der Unit in welchem Form1 autaucht auch sichtbar?

    Ausserdem würde ich von Variablen im Public-Bereich der Klasse schwerstens absehen und diese _immer_ mit Zugriffsfunktionen kapseln. Alles andere ist fahrlässig.



  • Habs jetzt nochmal neu gemacht, also komplett von vorne und jetzt gehts!
    ich musste aber natürlich die Variable in publich deklarieren

    1. Warum rätst du davon ab

    2. meinst du also ich soll beispielsweise ein Objekt in Form1 erstellen und dann auf dieses zugreifen?

    Hast du vll ein Beispiel??



  • wenn das so nicht machbar ist gibt es dann vll irgendne ne Art container in dem die
    Daten verwaltet werden
    also gerade in Bezug auf Variablen...

    vll son DataModul??



  • @junix wie würdest du vorgehen wenn du Variablen im Hauptprogramm bräuchtest die über ein Unterfenster eingegeben werden?

    andere können selbstverständlich auch antworten...



  • kann keiner was dazu sagen was schlecht daran ist die Variablen in public zu deklarieren?



  • Steht in der FAQ unter Programmiertips.


Anmelden zum Antworten