EStack Overflow beim erzeugen von Form



  • Hallo ich hab ein Problem mit der dynamischen erzeugung von einer Form.
    zuerst mal hab ich einen zweiten Konstruktor in meiner Formklass drin:

    public:
    	virtual __fastcall TOKRightDlg(TComponent* AOwner);
          virtual __fastcall TOKRightDlg(TComponent* AOwner, int index);
    

    und aufruden tu ich das ganze dann mit:

    TOKRightDlg *test = new TOKRightDlg(Application);
     test->ShowModal();
     if(test) delete test;
    

    wenn ich den zweiten Konstruktor wieder raus nehme funzt alles wieder, ansonsten krieg ich halt den EStack Overflow.

    Seltsamerweise hat es aber vorher irgendwann funktioniert 😡

    Hat jemand ne Idee was das sein könnte ???



  • Hat sich erledigt



  • Es gehört im allgemeinen zum guten Ton, auch eine selbstgefundene Lösung doch noch zu posten um zum Einen anderen mit ähnlichen Problemen eine Lösung zu bieten und zum Anderen die Lösung von den z.T. erfahreneren Benutzern im Forum "überblicken" zu lassen....

    -juni



  • junix schrieb:

    Es gehört im allgemeinen zum guten Ton, auch eine selbstgefundene Lösung doch noch zu posten um zum Einen anderen mit ähnlichen Problemen eine Lösung zu bieten und zum Anderen die Lösung von den z.T. erfahreneren Benutzern im Forum "überblicken" zu lassen....

    -juni

    Ok kein Problem 😉
    Bei der Instanzierung haben sich beide Konstruktoren gegenseitig aufgerufen (Endlosschleife).
    Warscheinlich weil es den zweiten Konstruktor den ich deklarierte, es schon in der Forms.hpp gibt.
    Ich hab in leicht modifiziert (Argumente verändert) und nun gehts.

    #pragma option push -w-inl
    /* TCustomForm.Create */ inline __fastcall virtual TForm(Classes::TComponent* AOwner) : TCustomForm(
    		AOwner) { }
    #pragma option pop
    #pragma option push -w-inl
    /* TCustomForm.CreateNew */ inline __fastcall virtual TForm(Classes::TComponent* AOwner, int Dummy)
    		 : TCustomForm(AOwner, Dummy) { }
    

Anmelden zum Antworten