eine Variable von der Unit6 in die Unit1 schreiben (Form6->Form1)



  • Hallo,

    habe folgendes Problem:

    Ich möchte von einen Form6 Formular in einen Form1 Formular einen Wert in eine Variable schreiben.

    Hier ein Beispiel:

    Code für die Unit1 (Form1): Hier ist die Variable float Spannungsfall

    -----------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    #include "Unit2.h"
    #include "Unit3.h"
    #include <math.h>
    #include "Unit4.h"
    #include "Unit5.h"
    #include "Unit6.h"
    //---------------------------------------------------------------------------

    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------

    float Spannungsfall=3.0;

    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {

    }

    ...
    -----------------------------------------------------------------------------
    -----------------------------------------------------------------------------
    -----------------------------------------------------------------------------

    Code für die Unit6 (Form6): Hier möchte ich über eine ComboBox1 den Text direkt
    in die Variable auf der Unit1 Spannungsfall schreiben

    //---------------------------------------------------------------------------

    #include <vcl.h>
    #pragma hdrstop

    #include "Unit6.h"
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm6 Form6;
    //---------------------------------------------------------------------------
    __fastcall TForm6::TForm6(TComponent
    Owner)
    : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------

    void __fastcall TForm6::Button1Click(TObject *Sender)
    {
    ComboBox1->Text ????????????????????????????????????

    Form6->Visible=false;
    }
    //---------------------------------------------------------------------------

    ...

    Könnt ihr mir da weiterhelfen?

    Gruss

    ahl



  • Hallo

    siehe FAQ, Thread Variablenübergabe an andere Form

    bis bald
    akari



  • Das kommt in den public deiner Unit1.h
    (public: // Anwender-Deklarationen)

    float Spannungsfall;
    

    Dann setzt du irgendwo deinen Wert in deine Variable (Unit1.cpp):
    Hier z.B. im Konstruktor

    __fastcall TForm1::TForm1(TComponent* Owner)
       : TForm(Owner)
    {
       Spannungsfall=3.0;
    }
    

    Dann kannst du in deiner Form6 so darauf zugreifen:

    ComboBox1->Text = Form1->Spannungsfall;
    


  • Hallo

    Code-Tags benutzen
    muss die Variable spannungsfall direkt, oder erst beim zeigen von Form1 zugewiesen werden???
    in Form6:

    Form1->Temp->Text = ComboBox1->Text;
    

    in Form1(bei onEnter oder onShow):

    Spannungsfall = Form1->Temp->Text.c_str();
    

    Form1->Temp bezeichnet ein unsichtbares(visible = false) EditFeld in Form1.

    corvin



  • so gehts' auch:

    #include <vcl.h> 
    #pragma hdrstop 
    
    float Spannungsfall=3.0;
    
    #include "Unit1.h" 
    #include "Unit2.h" 
    #include "Unit3.h" 
    #include <math.h> 
    #include "Unit4.h" 
    #include "Unit5.h" 
    #include "Unit6.h" 
    //--------------------------------------------------------------------------- 
    
    #pragma package(smart_init) 
    #pragma resource "*.dfm" 
    TForm1 *Form1; 
    //--------------------------------------------------------------------------- 
    
    //--------------------------------------------------------------------------- 
    __fastcall TForm1::TForm1(TComponent* Owner) 
    : TForm(Owner) 
    { 
    
    } 
    
    ... 
    ----------------------------------------------------------------------------- 
    ----------------------------------------------------------------------------- 
    -----------------------------------------------------------------------------
    

    corvin



  • so gehts' auch:

    So geht was ?



  • Hallo corvin1397,

    so hatte ich es probiert, aber ohne Erfolg. Ich kann natürlich ein Fehler gemacht haben.

    Vielen Dank für vielen Antworten, ich denke ich bekomme es so hin.

    Gruss ahl



  • Der Wert Spannungsfall wird erst verändert, wenn TForm6 aufgerufen wird, das kann aber höchstselten sein oder auch garnicht, je nach Benutzer.

    Dem Wert muss als erstes eine Zahl zugewiesen werden, hier 3.0, sonst gibt es in der Berechnung später Probleme, denn so steht dort irgendwas drin oder auch die 0.



  • @ludolphi

    ahl schrieb:

    Hallo,

    habe folgendes Problem:

    Ich möchte von einen Form6 Formular in einen Form1 Formular einen Wert in eine Variable schreiben.

    @ahl

    Form1->Temp->Text = ComboBox1->Text;
    

    muss bei einem onClick oder OnChange ereigniss stehen

    corvin



  • corvin1397 schrieb:

    @ludolphi

    ahl schrieb:

    Hallo,

    habe folgendes Problem:

    Ich möchte von einen Form6 Formular in einen Form1 Formular einen Wert in eine Variable schreiben.

    @ahl

    Form1->Temp->Text = ComboBox1->Text;
    

    muss bei einem onClick oder OnChange ereigniss stehen

    corvin

    🙄

    Dem Wert muss als erstes eine Zahl zugewiesen werden, hier 3.0, sonst gibt es in der Berechnung später Probleme, denn so steht dort irgendwas drin oder auch die 0.

    Ein Startwert gehört in den Konstruktor.



  • Habe zum laufen bekommen,

    habe die Methode von bcbler benutzt.

    Vielen DAnk für die Hilfe

    Gruß ahl



  • ahl schrieb:

    Habe zum laufen bekommen,

    habe die Methode von bcbler benutzt.

    Vielen DAnk für die Hilfe

    Gruß ahl

    die ist ja auch richtig!!!


Anmelden zum Antworten