edit Generieren.



  • Hallo

    - als was genau ist das Array Edit[] deklariert?
    - was ist k und welchen Wert hat es zu diesem Zeitpunkt? Ist es im Bereich der Array-Größe?
    - was bekommst du für eine Fehlermeldung?

    bis bald
    akari



  • -k ist ein integer wert mit vier.

    Die Fehkermeldung:

    [C++ Fehler] Unit2.cpp(33): E2451 Undefiniertes Symbol 'Edit'

    Mir ist schon klar das das falsch ist aber wie ist es richtig ??



  • Hallo

    deshalb meine Frage : als was genau ist das Array Edit[] deklariert?
    Dein Compiler sagt ganz klar, das kein Symbol (also zum Beispiel Variable bzw. Array) vorhanden ist. Du must natürlich ein Array deklarieren.

    TEdit *Edit[5]; // Array f+r 5 Zeiger auf TEdit-Controls.
    

    bis bald
    akari



  • g^^ ich möchte einfach das ein neues Edit mit der Zahl von k genneriert wird zb k ist 4 Dann soll Edit4 genneriert werden wie ist das möglich ??



  • Gar nicht!

    Nur über wie schon gezeigt über ein Array.



  • Hallo

    TEdit *NeuEdit
    ...
    NeuEdit1=new TEdit(this);
    NeuEdit1->Parent=this;
    NeuEdit1->Top=100;
    NeuEdit1->Left=50; 
    NeuEdit1->Name = "Edit" + k;
    

    Und bevor du weiterfragst : nein, du kannst auf diesen Control nicht direkt wie gewohnt mit

    Edit4->Text = "Hallo";
    

    zugreifen. Am besten legst du dir das Array an, wie es im von mir bereits mehrmals erwähnten FAQ-Artikel genannt wird.

    bis bald
    akari



  • [cpp]
    //in deinem header:
    TEdit* edits[10];

    //in deinem buttoclick()
    for(int i=0 ; i<10 ; i++)
    {
    edits[i] = new TEdit(this);
    edits[i]->Parent = this; // oder Form1?
    edit[i]->Left = 50;
    edits[i]->Top = i*30;//damit die untereinander sind
    edits[i]->Text = i+1;// somit die jeweilige nummer drin
    }

    so das war es - und für das darf ich auch werbung machen, weil das eigentlich ausführlich besprochen wurde. solltest vllt erstmal dynamische variablen lernen

    www.trikotsammlung.de.vu



  • Und wie kann ich sie nacher wieder löschen ???

    müsste das nicht so gehen

    delete edits[i];
    


  • F1 drücken
    in der Hilfe nach "new" suchen
    anklicken
    "Der Operator new für Arrays" auswählen
    lesen
    Beispiel anschauen



  • Hallo

    Wenn, dann müßtest du das schon in einer Schleife mit allen Feldern im Array machen.
    Aber in diesem Fall brauchst du ich nicht um das Löschen kümmern, da du beim Erzeugen der Instanzen

    ...=new TEdit(this);
    

    mit this das Form als Owner des Edits angegeben hast. Damit werden alle so erschaffenen Controls automatisch gelöscht, wenn auch das Form selber gelöscht wird. Du brauchst dich dann nicht selber um das Löschen kümmern.

    bis bald
    akari



  • g^^ ich habe jetzt 2 Buttons wenn ich auf den button mit dem plus klicke wird ein edit Hinzugefügt und Jetzt möchte ich wenn ich auf den minus button klicke das ein Feld gelöscht wird.

    edits[i] = new TEdit(this);
    edits[i]->Parent = this; // oder Form1?
    edits[i]->Left = 7;
    edits[i]->Top = i*25;//damit die untereinander sind
    edits[i]->Width = 225;
    Label2->Top = i*25+35;
    Edit4->Top = i*25+50;
    Edit5->Top = i*25+50;
    Button1->Top = i*25+75;
    i ++;
    

    Das ist mein Code für das Hinzufügen 😉



  • Hallo

    ja, dann kannst du mit dem von dir bereits geposteten Code ein Control aus dem Array löschen.

    bis bald
    akari


Anmelden zum Antworten