Instanz TForm schließen



  • Hallo,

    ich komme gerade nicht weiter ich benötige mal eure Hilfe.

    ich erzeuge zur Laufzeit mehrere Instanzen einer Form
    das sieht so aus

    Ttask *task = new Ttask(this);
    
    task->BorderStyle = bsNone;
    task->Name = "Task_" + i;
    task->Top = ATop;
    task->Left = ALeft;
    task->Height = AHeight;
    task->Width = AWidth;
    task->Color = clRed;
    task->Memo1->Color = clRed;
    task->Memo1->Text = AText;
    

    mein Problem ist jetzt ich möchte diese Form wieder schließen aber nicht aus der Form selbst heraus.
    Kann mir dabei jemand helfen.



  • task->Close();

    und dann noch ein

    delete task;

    da die Form mit new erstellt wurde



  • das geht nicht.

    nicht umsonst hebe ich "mehrere Instanzen" geschrieben.

    Hat niemand eine Idee?



  • Doch das funktioniert genau so. Du musst das halt bei allen Instanzen machen.
    Heißen bei dir etwa alle Instanzen task?
    Wenn du viele Instanzen hast wäre es vernünftig diese in einem vector zu speichern.



  • Siehe FAQ-Eintrag "Komponenten benutzen -Zugriff nicht durch Namen".
    Analog zum dort gezeigten kannst du mit Application->ComponentCount und Application->Components nach der gewünschten TForm-Instanz suchen.

    Ein eigenes Array oder Vector würde das tatsächlich etwas vereinfachen.


Anmelden zum Antworten