Variable von Unit1 an Unit2



  • 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