edit Generieren.
-
Wie kann ich machen dass wenn ich auf einen Button Klicke ein neues Edit Feld der Form Hinzugefügt wird.
-
-
Ich find es nicht

-
TEdit *Edit1
Edit1=new TEdit(this);
Edit1->Parent=this;
Edit1->Top=100;
Edit1->Left=50;wie und wo du das schreibst, musste selber rausfinden

-
Mr. Noob schrieb:
Ich find es nicht

In der von mir verlinkten FAQ ist im Abschnitt Komponenten benutzen ein Thema mit diesem Namen zu finden : zur Laufzeit erstellen, anzeigen und Events zuweisen . Ist das so schwer zu finden?
bis bald
akari
-
Danke, aber warum Funktioniert dass nicht ??
Edit[k] = new TEdit(this);
-
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
-
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