![]() |
belibig viele Forms zur Laufzeit erzeugen
Hallo zusammen,
ich bin momentan dabei ein Programm zu schreiben, was eine bestimmte Anzahl an Forms erzeugt. Leider stellt es sich als schwierig heraus diese zur Laufzeit zu erstellen, da ich sie einfach durchnummerieren möchte und das mit den Variablen nicht so klappt. Meine frage nun: Was oder Wie muss ich diese Forms erzeugen, sodass ich dynamisch Forms erstellen kann und ich sie nicht vordefinieren muss. Schonmal vielen Dank im vorraus euer 5etH |
Re: belibig viele Forms zur Laufzeit erzeugen
Hallo,
leere Formulare kannst du so erzeugen:
Delphi-Quellcode:
Die Formulare sind dann alle in einem Array enthalten, damit du leicht auf diese zugreifen und sie auch wieder freigeben kannst.
const
FORM_NUM = 6; var i: Integer; MyForms: array of TForm; Setlength(MyForms, FORM_NUM); for i := 0 to FORM_NUM - 1 do begin MyForms[i] := TForm.Create(self); MyForms[i].Name := 'Form' + IntToStr(i); MyForms[i].Show; end; Ungetestet. ;) Grüße |
Re: belibig viele Forms zur Laufzeit erzeugen
@Matze: In Delphi werden Zeichenketten mit einem + verbunden :stupid:
|
Re: belibig viele Forms zur Laufzeit erzeugen
Und man sollte auch auf das Array zugreifen und die Forms dort erstellen :stupid:
|
Re: belibig viele Forms zur Laufzeit erzeugen
also momentan sieht unseres so aus und wir haben noch einen Fehler der im code makiert ist
Delphi-Quellcode:
[EDIT] wird jetzt auf das array angesprochen
procedure newwin();
var i: Integer; MyForms: array of TForm; const FORM_NUM = 20; begin setlength(MyForms, FORM_NUM); for i := 0 to FORM_NUM - 1 do begin MyForms[i] := TForm.Create(self); // undefinierter bezeichner 'self' MyForms[i].Name := 'Form ' + IntToStr(i); MyForms[i].Show; inc(FORM_NUM); end; end; end. |
Re: belibig viele Forms zur Laufzeit erzeugen
Huch, da waren einige Fehlerchen drinnen. :stupid: Du müsstest nochmals die korrigierte Fassung von oben nehmen.
Mit dem "self" bin ich mir nicht mehr ganz sicher, evtl war's auch "nil". Edit: Bei mir gehen sowohl "self" als auch "nil". |
Re: belibig viele Forms zur Laufzeit erzeugen
Oder nimm "Application" anstatt self, Unit forms muss eingebunden sein.
[edit] Was soll das inc(FORM_NUM);? :shock: [/edit] |
Re: belibig viele Forms zur Laufzeit erzeugen
Oder mach "procedure newwin()" zum Mitglied von TForm1. Dann klappt das auch mit dem Self ... Das riecht doch schonwieder stark nach mangelndem Grundlagenwissen ... :roll:
Und Edit meint grad, dass dein Array in der Prozedur nichts zu suchen hat. Weil dann kannste dir das auch ganz schenken, weil das Array gibts nur solange bis die Prozedur durchlaufen ist ... Schaltet die Generation von heute eigentlich auch mal das Hirn beim Programmieren ein oder geht über Copy & Paste nicht mehr viel hinaus ...? Meine Güte ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz