Daten aus Form1 in eine Instanz der Form2 übergeben??



  • Frohe Ostern an alle erst mal 😆

    kann mir jemand sagen warum das einfügen in die listview, ausserhalb der form wo sich die listview befindet, nicht geht?

    das ist der der code

    int n = StrToInt(Form3->Editn->Text);
         Form3->ListView1->Items->Item[n]->Caption;  
    
    TListItem *ListItem = Form3->ListView1->Items->Add();
    ListItem->Caption = Form3->Edit20->Text;
    ListItem->SubItems->Add(Form3->Edit34->Text); 
    ListItem->SubItems->Add(Form3->ComboBox5->Text);
    if (Form3->CheckBox7->State == cbChecked)
    {
    ListItem->SubItems->Add("Ja");
    }
    else
    {
    ListItem->SubItems->Add("Nein");
    }
    if (Form3->CheckBox8->State == cbChecked)
    {
    ListItem->SubItems->Add("Ja");
    }
    else
    {
    ListItem->SubItems->Add("Nein");
    }
    ListItem->SubItems->Add(Form3->ComboBox1->Text);
    n = n +1;
    Form3->Editn->Text = n;
    
     prov1->Visible = false;
    

    vielleicht sollte ich noch sagen das der code im einem button ist, der in einer form liegt, die aus einer instanz von form3 erzeugt wird.

    die form selber heist dann Form3_1,Form3_2.....

    wie kann ich denn darauf zugreifen? wenn ich diesen namen im code schreibe, dann ist die form nicht vorhanden

    habs so in der art versucht Form3[1]->Edit1->Text,klappt leider auch nicht 😞

    were dankbar für vorschläge 💡

    thx wünsche noch was



  • morgen,

    hmm wundert mich das hierzu nicht viel zu helfen gibt 😕

    ich versuchs noch mals zu erklären, also ich habe eine form erstellt auf der ein paar buttons und edit felder und diese listview ist.
    aus dieser form erstelle ich eine instanz der form, mit dem button auf der form erstelle ich noch eine form instanz einer anderen form.

    jetzt wollte ich die daten die ich in der instanz der zweiten form schreibe, in die instanz der ersten form schreiben.

    gibt es den nicht ne möglichkeit, zu erkennen aus welcher form instanz die 2 instanz erstellt worden ist?

    die namen der instanz weis ich ja, hab sie mir mal in ein edit feld ausgegeben, die heist immer form3_1, form3_2 usw.

    nur leider klappt es nicht, daß ich stat "form3_1->edit->Text = ..." schreibe, so was in der art "(Editform->Text)->edit->Text = ...."

    ich bin schon weit gekommen, richtig glücklich wie mein programm schon mitlerweile aussieht 😋
    aber die form instanz ist schon ziemlich gross.
    wenn ich die funktion noch darunter bringen möchte, die ich eigentlich in der neuen instanz unterbringenwollte, wird es verschlechtert(unübersichtlich!!) 😞

    bitte um hilfe ⚠



  • lies dir mal in der FAQ die Beiträge "Zugriff, aber nicht durch Namen" und "Dynamische Arrays von Komponenten oder Objekten" durch, alternativ geht auch eine Liste (TList) in die du alle Forms beim erstellen einträgst und dann über ein bestimmtes Kriterium (z.B. Tag) auswählst



  • hab mir die faqs mal durchgelesen, werd nicht richtig schlau draus 😕

    aber zu der tlist, ich hab zb eine tlistbox, geht die?
    da ist eine tag eigenschaft, die man ansprechen könnte so weit gesehen.

    frage ist den in der list box in der ersten zeile der name der form instanz steht, wie müsste ich dann den befehl schreiben stat Form3_1->Edit1->Text ....

    so was wie ListBox1->Tag1->Edit1->Text, oder wie müsste das aussehen?

    danke schon mal für den tip das gibt hoffnung 🙂



  • hola

    hawkdz schrieb:

    jetzt wollte ich die daten die ich in der instanz der zweiten form schreibe, in die instanz der ersten form schreiben.

    falls du die zweite form z.b. folgend erstellt hast

    TForm2 *form = new TForm2(this);
    

    dann kannst du mit

    TForm1 *owner = reinterpret_cast<TForm1*>(this->Owner);
    

    von Form2 aus auf Form1 zugreifen und deine Daten dort irgendwo eintragen.
    in 'Owner' ist die erzeugende Form gespeichert.

    Meep Meep



  • Meep Meep schrieb:

    falls du die zweite form z.b. folgend erstellt hast

    TForm2 *form = new TForm2(this);
    

    dann kannst du mit

    TForm1 *owner = reinterpret_cast<TForm1*>(this->Owner);
    

    von Form2 aus auf Form1 zugreifen und deine Daten dort irgendwo eintragen.
    in 'Owner' ist die erzeugende Form gespeichert.

    Meep Meep

    sorry@meep

    sieht mal wieder und hört sich simpel an, aber anstat ich das auch so leicht umsetzen könnte hmm nee leider nicht 😞

    also die form wird in diese art und weise erzeugt, hab mal die zweite zeile mit in die erste form gesetzt aus der die instanz erzeugt wird.
    da sagt er schon das owner ein wert bekommt der nie verwendet wird.

    hab dann in der zweiten form versucht auf owner zuzugreifen, das kennt er dann wieder mal nicht 😞

    ich schäme mich, daß ich immer noch nicht die zusammenhänge verstehe aus solchen zwei zeilen 😞
    ich falle vor euch auf die knie und bitte um weitere erklärung BITTE

    EDIT....

    juhu nach 20mal lesen dann klappts auch, naja so etwas..
    hab das so gemacht

    das steht in der form2.instanz

    TForm1 *owner = reinterpret_cast<TForm1*>(this->Owner);
    owner->Edit1->Text = "test";
    owner->Button1->Caption = "1234";
    

    aber er schreibt nicht edit1->Text = test, sondern setzt die caption vom button auf test und ins edit feld schreibt er 1234??? warum?



  • man ich depp 🙄

    wenn ich die richtige form anspräche klappts BIGBIG THX


Anmelden zum Antworten