ListBox Eigenschaft? welches ItemIndex makiert ist?



  • tach,

    RandomAccess85 schrieb:

    was isn TForm3 ??

    das ist eine schon existierende form mit editfeldern und buttons

    RandomAccess85 schrieb:

    Das Formular "a" scheint ja schon zu existieren, oder?! In dem Fall kannst du TForm3* a = new TForm3(Application); weglassen und gleich a->Show(); ausführen.

    hmm also so weit ich das verstanden habe, ist a eine instans von der form3, die wird erst zurlaufzeit erzeugt.

    aber ich hab die if abfrage falsch gemacht, ich 🤡

    so geht das jetzt

    if (ListView2->Selected->Index == 0)
     {
     AnsiString a1 =ListView2->Items->Item[0]->Caption;
           TForm3* a = new TForm3(Application);
    a->Show();
    a->Caption ="Konfiguration von "+ a1;
    a->Edititem->Text = "0";
    a->Editfo->Text = "az1";
    a->Edit1->Text = ListView2->Items->Item[0]->Caption;
    a->Edit35->Text = ListView2->Items->Item[0]->SubItems->Strings[0];
    a->Edit3->Text = ListView2->Items->Item[0]->SubItems->Strings[1];
     a->Edit2->Text = ListView2->Items->Item[0]->SubItems->Strings[2];
    }
     if (ListView2->Selected->Index == 1)
     {
     AnsiString a1 =ListView2->Items->Item[1]->Caption;
           TForm3* a = new TForm3(Application);
    a->Show();
    a->Caption ="Konfiguration von "+ a1;
    a->Edititem->Text = "1";
    a->Editfo->Text = "az2";
    a->Edit1->Text = ListView2->Items->Item[1]->Caption;
    a->Edit35->Text = ListView2->Items->Item[1]->SubItems->Strings[0];
    a->Edit3->Text = ListView2->Items->Item[1]->SubItems->Strings[1];
     a->Edit2->Text = ListView2->Items->Item[1]->SubItems->Strings[2];
    }
    

    das semikolon in der if zeile hat gestört grrrr

    das mit dem hinzufügen haut aber leider immer noch nicht hin 😞
    wie kann ich den den die daten, vom makierten eintrag den ich geöffnet habe, wieder in die richtige zeile zurückschreiben?

    😕



  • Wieso schreibst denn nich einfach Form3->Show; Form3->Edititem->Text = "0"; usw. ?

    ListView2->Items->Item[1]->Caption = a->Edit1->Text;
    
    TListItem *ListItem = ListView2->Items->Add();
    ListItem->SubItems->Add(a->Edit35->Text);
    ListItem->SubItems->Add(a->Edit3->Text);
    ListItem->SubItems->Add(a->Edit2->Text);
    

    so, kannst die Daten zurückschreiben, aber du musst vorher die "alte" Zeile löschen. Geht vielleicht aber auch eleganter 😃

    mfg, Micha



  • RandomAccess85 schrieb:

    Wieso schreibst denn nich einfach Form3->Show; Form3->Edititem->Text = "0"; usw. ?

    weil Form3 nur die grüsst form ist wo ich die funktionen der buttons festgelegt habe, Edititem gebe ich an die instans weiter damit wie weis welches ItemIndex angesprochen würde aus der listview.

    Form3 wird mit den instansen merfach geöffnet, für jeden eintrag in der listview seperat.

    jetzt kannst du dir bestimmt vorstellen daß ich listview beim schliessen der instans nicht clearen kann, weil wenn da drei einträge stehen ich nicht alle auf einmal ablegen kann, hab ja immer nur eins offen.



  • Ja, hab ich kapiert, aber trotzdem kannst du den oben geschriebenen Code zum wiedereinfügen verwenden 😉 !

    mfg, Micha



  • ja sorry du meintest zeile löschen 👍

    habs so versucht vor dem code fürs setzen/add....

    Form1->ListView2->Items->Item[StrToInt(Edititem->Text)]->Delete();
    

    auch noch in anderer schreibweise, passt irgendwie nicht bringt zugriffsverletzung 😡



  • so gehts aber juhhhhhuuuuuu 😃

    Form1->ListView2->Items->Item[StrToInt(Edititem->Text)]->Delete();
    
     Form1->ListView2->Items->Item[StrToInt(Edititem->Text)]->Caption;
    
    TListItem *ListItem = Form1->ListView2->Items->Add();
    ListItem->Caption = Edit1->Text;
    ListItem->SubItems->Add(Edit35->Text);
    ListItem->SubItems->Add(Edit3->Text);
    ListItem->SubItems->Add(Edit2->Text);
    
    Close();
    

    danke schön

    jetzt tauch wieder mal was auf was nicht sein sollte grrr

    wen ich die obere zeilen öffne und dann wieder ablege, löscht er diese und setzt sie aber nicht an die gleiche stelle.
    sondern die nicht geöffnete springt an die erste stelle und die gespeicherte zeile wird unten dran gehängt 😞

    mist immer diese neben effekte grrr
    würde ja schon gerne das er die zeile dort ablegt wo er sie aufgerufen hat und nicht drunter setzt 💡 😕



  • hawkdz schrieb:

    jetzt tauch wieder mal was auf was nicht sein sollte grrr

    wen ich die obere zeilen öffne und dann wieder ablege, löscht er diese und setzt sie aber nicht an die gleiche stelle.
    sondern die nicht geöffnete springt an die erste stelle und die gespeicherte zeile wird unten dran gehängt 😞

    mist immer diese neben effekte grrr
    würde ja schon gerne das er die zeile dort ablegt wo er sie aufgerufen hat und nicht drunter setzt 💡 😕

    hat den niemand ne idee wie man das beheben könnte?

    geduld zahlt sich doch immer wieder aus 🙄

    Form1->ListView2->Items->Item[StrToInt(Edititem->Text)]->Delete();
    
     Form1->ListView2->Items->Item[StrToInt(Edititem->Text)]->Caption;
    
    TListItem *ListItem = Form1->ListView2->Items->Insert(StrToInt(Edititem->Text));
    ListItem->Caption = Edit1->Text;
    ListItem->SubItems->Add(Edit35->Text);
    ListItem->SubItems->Add(Edit3->Text);
    ListItem->SubItems->Add(Edit2->Text);
    
    Close();
    

    special thx an Lucy und ihr richedit problem 👍 😃


Anmelden zum Antworten