Announcement

Collapse
No announcement yet.

Unterschied zwischen new und CreateForm

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Unterschied zwischen new und CreateForm

    Hallo ihr Entwickler

    Kann mir einer erklären worin der Unterschied ist zwischen den beiden Aufrufen?<BR>
    TSplashScreen *SplashScreen = new TSplashScreen( NULL );<BR>
    Application->CreateForm(__classid(TMain_Form), &Main_Form);<BR>
    Beide Fenster scheinen einwandfrei zu funktionieren. Sind beide Befehle identisch? Wenn ja welcher ist besser.

    Gruss Renato

  • #2
    Hallo Renato,

    ersteres legt eine neue Instanz des Formulars an unter einer neuen Variable, die auch entsprechend mit ->Free() oder delete xxx freigegeben werden muß.

    Zweiteres verwendet die <B>globale</B> Formularvariable der Applikation. Hierbei muß in den Projektoptionen das automatische Erzeugen dieses Formulars deaktiviert werden (oder das Formular muss vorher freigegeben werden).

    Der große Unterschied ist die globale Instanz der zweiter Version. Es reicht in anderen Formularen den Header einzubinden und man kann das Formular dann über die Variable ansprechen. Bei der ersten Fassung ist die Instanz des Formulars innerhalb des Gültigkeitsbereichs verfügbar, wenn dieses Formular in einem dritten Formular verwenden willst, muß Du die Instanz übergeben, oder eine neue Instanz erzeugen.

    Grüße Joche

    Comment


    • #3
      Außerdem wird die erste Form, die mit Application->CreateForm angelegt wird, automatisch zur MainForm der Anwendung, IIRC.
      <br>Uli

      Comment


      • #4
        Herzlichen Dank an euch beiden. Die Erklärung ist zimlich einleuchtend. Dank

        Comment

        Working...
        X