Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Instanz eines Forms erstellen (https://www.delphipraxis.net/72093-instanz-eines-forms-erstellen.html)

vlees91 25. Jun 2006 15:45


Instanz eines Forms erstellen
 
Hallo
Ist es möglich eine Kopie eines betehenden Forms (TForm2, TForm2, etc...) zu erstellen (in ein Array wie MyForms: array of TForm;)?

Ich habe bereits versucht in eine Array mit jedem weiteren Index TForm2.Create(self); aufzurufen. Da wird allerdings nicht ein neues Form erstellt, sondern einfach das Form2 neu angezeigt.
Mit einem Array aus Pointer gehts auch nicht, denn es wird im Array nur nil gespeichert als Pointer.

Der_Unwissende 25. Jun 2006 15:56

Re: Instanz eines Forms erstellen
 
Hi,
es ist natürlich möglich beliebig viele Instanzen eines Formulars zu erstellen, aber die Frage ist, ob es nötig ist. Jedes Form verbraucht nun einmal ein paar Ressourcen und auch in der heutigen und jeder zukünftigen Zeit, sollte man die nicht sinnlos verschwenden.
Mittels TForm.Create erzeugst du eine neue Instanz, die du natürlich in einem Array ablegen kannst. Mittels Show kannst du dann auch verschiedene Instanzen anzeigen, musst natürlich dann die entsprechende Instanz verwenden (also z.B. deineForms[0].Show, deineForms[1].Show, ...)

Wie gesagt, es sollte nur mit einem Sinnvollen Grund auch wirklich geschehen. Vielleicht versuchst du ja nur ein MDI zu bauen, dann such einfach mal danach (im Forum).

Gruß Der Unwissende

mkinzler 25. Jun 2006 15:57

Re: Instanz eines Forms erstellen
 
Zitat:

Ich habe bereits versucht in eine Array mit jedem weiteren Index
Delphi-Quellcode:
TForm2.Create(self);
aufzurufen. Da wird allerdings nicht ein neues Form erstellt, sondern einfach das Form2 neu angezeigt.
Dadurch wird definitiv ein neues Formular-Objekt erzeugt. Was referenziert self?

vlees91 25. Jun 2006 16:05

Re: Instanz eines Forms erstellen
 
Es soll sowas wie eine Art "Desktop" sein, der aber ein Programm ist. Der Benutzer kann dann soviele "Programme" öffnen, wie er will, und wäre ja selber schuld, wenns irgendwann gaaaaaanz langsam wird (wie bei Windows ja auch).

vlees91 25. Jun 2006 16:22

Re: Instanz eines Forms erstellen
 
Zitat:

Zitat von Der_Unwissende
Wie gesagt, es sollte nur mit einem Sinnvollen Grund auch wirklich geschehen. Vielleicht versuchst du ja nur ein MDI zu bauen, dann such einfach mal danach (im Forum).

Damit habe ich es am ANfang versucht, aber da funktioniert Drag and Drop nicht vernünftig (Das onDrag event wird ausgelöst, es passiert aber nichts).

Der_Unwissende 25. Jun 2006 17:59

Re: Instanz eines Forms erstellen
 
Zitat:

Zitat von vlees91
Damit habe ich es am ANfang versucht, aber da funktioniert Drag and Drop nicht vernünftig (Das onDrag event wird ausgelöst, es passiert aber nichts).

Ja, aber das wirst du kaum mit mehreren Forms beheben können. Denke es ist eher ein Fehler in deiner Umsetzung als an der Komponente. Ich weiß ja nicht was du dort machst, aber auch zu Drag&Drop findest du eigentlich eine Menge Hilfe mit der Suche.

vlees91 26. Jun 2006 15:50

Re: Instanz eines Forms erstellen
 
das drag and drop hat damit nichts zu tun. nur das drag and drop brauche ich auch und in der kombination gehts bis jetzt nicht


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:15 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