DestroyComponents



  • Hallo zusammen,

    ich habe ein Problem mit DestroyComponents bei TFrame. Folgendes habe ich geschrieben:

    Frame11->DestroyComponents();
    i = 0;
    
    i++;
    Shape[i] = new TShape(Form11->Frame11);
    Shape[i]->Parent = Form11->Frame11;
    Shape[i]->Shape = stRectangle;
    Shape[i]->Brush->Color = RGB(149,189,238);
    Shape[i]->Pen->Color = RGB(28,107,209);
    Shape[i]->Left = 0;
    Shape[i]->Top = i*60;
    Shape[i]->Width = Form11->ClientWidth+1;
    Shape[i]->Height = 61;
    
    //... Es werden dann noch weitere Komponenten erzeugt
    

    Was passiert? Sobald auf ein Button... geklickt wird, werden alle Komponenten, die in Frame11 liegen gelöscht. Dannach werden wieder neue Komponenten angelegt.
    -->So sollte es eigentlich ablaufen, aber...
    ...das Problem ist nur, dass das Programm zwar alle Komponenten löscht, aber beim Anlegen der neuen Komponenten eine Zugriffsverletzung bringt.

    Info:
    Das Frame heißt eigentlich Frame1. Im Formular "Form11" eingefügt, wird das nun eingefügte Frame "Frame11" bezeichnet, obwohl es sich um das selbe Frame (Frame1) handelt.

    Was soll ich machen, um das Problem zu beheben?

    Danke für die Hilfe!



  • Ich hab das gleiche probiert und bei mir gings aber evtl. ist bei dir das Array
    TShape *Shape[?] nicht global im programm sondern im frame definiert.
    da es ein array ist wird es, wenn es zu Frame1 gehört mit zerstört. Dann müsste noch nach

    DestroyComponents()
    

    diese Zeile eingefügt werden:

    Shape = new TShape*[?]
    

    weil TShape *Shape[?] ja im grunde das gleiche wie TShape **Shape ist


Anmelden zum Antworten