Editfelder über Programmcode erstellen?

Servior

Grünschnabel
Hallo,

ich suche eine Möglichkeit Editfelder über mein Programm selber zu erstellen, also diese nicht über die IDE zusammenklicken zu müssen.

Bisher habe ich keine Möglichkeit gefunden (könnte vielleicht daran liegen, dass ich nicht genau weiß wonach ich suchen soll), von daher stelle ich meine Frage hier.
 
Hallo,
C++:
TEdit *neuesEdit = new TEdit(this);
neuesEdit->Parent = Form1;
neuesEdit->Top  = 20;
neuesEdit->Left = 20;
delete neuesEdit;
ich hoffe das meinst du!?
Gruß
 
Zuletzt bearbeitet von einem Moderator:
Danke, genau das habe ich gesucht.

Jedoch bringt mich das direkt zu meiner nächsten Frage.

Ich habe 2 Forschleifen die mir 40 Editfelder erstellen, funktioniert auch soweit. Nur kann ich jetzt anscheinend nur über die Schleife selber darauf zugreifen, ein Zugriff über "Edit11" bzw. "neuesEdit" funktioniert ausserhalb der Schleife nicht.

Fehlermeldung ist "Undefined Symbol Edit11".

Code:
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
  for (int i=1;i<=8;i++) {
    for (int j=1;j<=5;j++) {
      TEdit *neuesEdit = new TEdit(this);
      neuesEdit->Parent = Form1;
      neuesEdit->Name="Edit"+IntToStr(i)+IntToStr(j);
      neuesEdit->Top  = 20*i;
      neuesEdit->Left = 40*j;
    }
  }

  Edit11->Text = "test";
}
 
Nur kann ich jetzt anscheinend nur über die Schleife selber darauf zugreifen, ...
Code:
    for (int j=1;j<=5;j++) {
      TEdit *neuesEdit = new TEdit(this);
      ...
    }

  Edit11->Text = "test";
}
Wundert mich nicht, da du "neuesEdit" auch nur innerhalb der for-Schleife deklariert hast. Sobald die Schleifen durchgelaufen sind, werden auch alle Editfeld-Instanzen aufgelöst. Das ist die ganz normale Sichtbarkeit von Variablen unter C++.
 
Ok, hab nun eine Möglichkeit gefunden. Und zwar erstelle ich ein Zeigerarray.
TEdit *neuesEdit[20];

Leider muss ich einen konstanten Wert eintragen. Kann ich das array dynamisch machen?
Dass es z.B. gleich der Anzahl der Editfelder ist.

Danke
 
Nein bei solch einer Definition muss dort eine Konstante hin, aber wenn du die Anzahl weist bzw. dynamisch auslesen kannst dann machst du eine for-Schleife und erstellst die Edits bis maxN erreicht ist :)
 

Neue Beiträge

Zurück