AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi belibig viele Forms zur Laufzeit erzeugen
Thema durchsuchen
Ansicht
Themen-Optionen

belibig viele Forms zur Laufzeit erzeugen

Ein Thema von 5etH · begonnen am 28. Apr 2008 · letzter Beitrag vom 28. Apr 2008
Antwort Antwort
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#1

belibig viele Forms zur Laufzeit erzeugen

  Alt 28. Apr 2008, 16:58
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
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: belibig viele Forms zur Laufzeit erzeugen

  Alt 28. Apr 2008, 17:02
Hallo,

leere Formulare kannst du so erzeugen:

Delphi-Quellcode:
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;
Die Formulare sind dann alle in einem Array enthalten, damit du leicht auf diese zugreifen und sie auch wieder freigeben kannst.
Ungetestet.

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: belibig viele Forms zur Laufzeit erzeugen

  Alt 28. Apr 2008, 17:06
@Matze: In Delphi werden Zeichenketten mit einem + verbunden
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: belibig viele Forms zur Laufzeit erzeugen

  Alt 28. Apr 2008, 17:08
Und man sollte auch auf das Array zugreifen und die Forms dort erstellen
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#5

Re: belibig viele Forms zur Laufzeit erzeugen

  Alt 28. Apr 2008, 17:08
also momentan sieht unseres so aus und wir haben noch einen Fehler der im code makiert ist



Delphi-Quellcode:
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.
[EDIT] wird jetzt auf das array angesprochen
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: belibig viele Forms zur Laufzeit erzeugen

  Alt 28. Apr 2008, 17:09
Huch, da waren einige Fehlerchen drinnen. 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".
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: belibig viele Forms zur Laufzeit erzeugen

  Alt 28. Apr 2008, 17:11
Oder nimm "Application" anstatt self, Unit forms muss eingebunden sein.

[edit] Was soll das inc(FORM_NUM);? [/edit]
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#8

Re: belibig viele Forms zur Laufzeit erzeugen

  Alt 28. Apr 2008, 17:13
Oder mach "procedure newwin()" zum Mitglied von TForm1. Dann klappt das auch mit dem Self ... Das riecht doch schonwieder stark nach mangelndem Grundlagenwissen ...

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 ...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz