Announcement

Collapse
No announcement yet.

Formulare vollständig entladen

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

  • Formulare vollständig entladen

    Ich schreibe ein umfangreicheres Projekt, deshalb lade ich die meisten Formen erst zur Laufzeit. Wie kann ich diese Formen vollständig aus dem Speicher entfernen?
    Code zum Laden:
    application.CreateForm(tfrm_auswertung,frm_auswert ung);
    frm_auswertung.Show;

  • #2
    bei modalen fenstern:

    application.CreateForm(tfrm_auswertung,frm_auswert ung); frm_auswertung.Showmodal;
    frm_auswertung.release;

    bei mdi-fenstern:

    application.CreateForm(tfrm_auswertung,frm_auswert ung); frm_auswertung.Show;

    im ereignis ONCLOSE des fensters

    Action := caFree;

    eintragen

    Comment


    • #3
      Hey,

      ich habe die Erfahrung gemacht, daß Fenster so nicht vollständig entladen sind.

      Testet man TForm( FindComponent('frm_auswertung') ) auf nil, so erhält man als Ergebnis FALSE, da das Fenster nun doch nicht nil ist.

      bis dann

      volke

      Comment


      • #4
        Hallo,

        wenn einer der Vorfahren dieser Objektinstanz auch nur eine <b>class function</b> deklariert (was immer der Fall ist), so muss dieses "Rumpfobjekt" gefunden werden. Dies bedeutet jedoch nicht, es mit einem vollständig initialisierten Objekt zu tun zu haben - denn in einer Class Function dürfen keine Objektfelder angesprochen werden (denn diese gibt es erst nach der vollständigen Initialisierung)

        Comment


        • #5
          Hallo,
          Danke für die Lösung, daß ich jetzt ein mit Show geladenes MDI-Fenster korrekt schließen kann.
          Bei Neuaufruf des Fensters hatte ich jedoch auch das Problem,
          daß ich nicht erkennen kann, ob ich das Formular neu createn muß oder
          nicht. Ich habe mir mit einer globalen Variblen 'Formular_gestartet'
          geholfen, die ich beim Createn setze und beim Schließen zurücksetze.
          Sicher nicht die beste Lösung, aber sie funktioniert

          Comment

          Working...
          X