Init beim RichEdit



  • Hi Leute
    ich kann leider mein RichEdit nicht richtig Initialisieren und ich hoffe hier kann mir geholfen werden. 😉

    TPrintSteuerung::TPrintSteuerung(TComponent* Owner)
    {
       PrintDialog1=new TPrintDialog(Owner);
       Text1=new TRichEdit(Owner);
       BitFeld=new GBits();
       Liste=new TStringList();
       Liste2=new TStringList();
       parent=new TWinControl(Owner);
       const_laenge=19;
       Lklammer_ohne=" [   ] ";
    
       this->Text1->Parent=parent;
    
       this->Text1->Paragraph->TabCount=2;      <- hier crasht es!!!
       this->Text1->Paragraph->Tab[0]=220;
       this->Text1->Font->Name="Times New Roman";
    }
    

    Fehlermeldung: kein übergeordnetes Fenster

    aufgerufen wird mit : test=new TPrintSteuerung(Form1);

    mfg

    Gast1807



  • Hallo,

    mir ist das immer dann passiert, wenn das Richedit noch keinen Parent(vielleicht auch Owner) hatte.
    Du gibts zwar einen Parent (bzw Owner) an, aber sind die auch ungleich 0?

    Vielleicht ist es das ja.

    Ciao,
    jenz



  • ja, die mit new erstellten Objekte sind alle richtig initialisiert. 🙂



  • Hallo

    was erhoffst du dir davon?

    parent=new TWinControl(Owner);
    this->Text1->Parent=parent;
    

    WinControl ist doch eine Basisklasse ohne Funktion.
    Das Problem ist einfach, das du eine echte Instanz von WinControl brauchst.
    Du kannst es so machen, was meistens funktionieren sollte

    Text1->Parent=dynamic_cast<TWinControl *> (Owner);
    

    Und/Oder du gibst deiner Klasse TPrinterSteuerung moch eine Eigenschaft, wo du ein WinControl zuweisen kannst, das du dann über den Setter an die untergeordneten Controls weitergibst.

    bis bald
    akari



  • Danke, deins läuft 👍

    aber in mein parent müßten doch auch die gleich infos drin stehen, wie die dich ich jetzt mit "dynamic_cast<TWinControl *> (Owner);" hole oder?



  • Hallo

    weis jetzt nicht genau, was du wissen willst. Schau dir in der Hilfe mal die Klassenhierarchie von TForm an. Das ist nämlich u.a. abgeleitet von TWinControl, was wiederrum von u.a. TComponent abgeleitet ist. Deshalb kannst du meistens diesen cast machen.

    bis bald
    akari


Anmelden zum Antworten