edit's aktualisieren
-
Hallo,
wie , kann ich zur Laufzeit erstellte Edit's, die Positionen aktualisieren, bzw. die alten Edit's löschen um an anderer Pos. neu zu erstellen?const int x = 10; y = 20; TEdit *edit[x]; for (int i=0;i < x; i++ ) { edit[i] = new TEdit(this); edit[i]->Parent = Form1; if (i == 0) { edit[i]->Top = 20; edit[i]->Left = 16; } else { edit[i]->Top = y + 40 ; edit[i]->Left = 16; y = edit[i]->Top ; } }Danke in voraus
Gruß
-
Hallo
Was gefällt dir denn nicht an den Eigenschaften Left und Pos? Die sind genau dafür da die Position eines Controls zu bestimmen, auch dynamisch zur Laufzeit.
Vermutlich gehts es dir darum, das du für die nachträgliche Positionsänderung die entsprechenden Control-Instanzen wieder brauchst. Da du aber eh schon ein ganzes Array damit fühlst, must du doch nur dieses Array als Member der Form-Klasse deklarieren, und nicht lokal in der Methode zum Erstellen.
bis bald
akari
-
Hallo,
sorry, aber ich stehe irgendwie auf dem Schlauch, kanst du mir noch mal helfen?
Oder wie lösche ich die zur Laufzeit erstellten Edit's?Gruß
-
Hallo
Verschiebe die Deklarationen
const int x = 10; TEdit *edit[x];komplett in die Headerdatei des Forms, zwischen private: und public:
Damit kannst du auf dieses Array auch außerhalb der einem Methode zum Erzeugen der Controls benutzen. Und genau so eine Schleife wie beim Erzeugen benutzen um neue Positionen festzulegen.Du solltest vielleicht den Variablen x und edit noch aussagekräftigere Namen geben.
bis bald
akari
-
Und dir den Plural-Apostroph abgewöhnen, der ist soger im Englischen falsch.

Gelöscht wird im Übrigen ganz normal mit delete.
-
Hallo,
wenn ich so "delete *edit;" das edit löschen will löscht er nur das erste(0te), wie, aber lösche ich alle?
Ach und const int x = 10; kann in der header nicht init. werden.Könnt ihr mir noch mal helfen?
Danke
Gruß Daniel
-
Hallo
wenn ich so "delete *edit;" das edit löschen will löscht er nur das erste(0te), wie, aber lösche ich alle?
Indem u alle Controls einzeln mit delete löscht?
Da du ja schon ein Array mit bekannter größe hast, kannst du wie beim Erstellen eine Schleife nehmen.const int x = 10; kann in der header nicht init. werden.
Dann schreib noch ein static davor
static const int x = 10;bis bald
akari
-
Jo,
danke, akari jetzt funzt es so wie es soll.Danke
Gruß Daniel