Announcement

Collapse
No announcement yet.

Richedit.font.assign(standardfont) mit Fehlern?

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

  • Richedit.font.assign(standardfont) mit Fehlern?

    Hallo,<br>

    ich weise einem Richedit.font einen vorher erzeugten Standardfont zu:<br>
    Standardfont:=TFont.create;<br>
    Standardfont.name:='Nuptial BT';<br>
    Richedit.font.assign(standardfont);<br>

    An manchen Stellen, direkt vor der Verwendung des Richedits und auch, wenn der<br>
    Standardfont über eine Art Eigenschaftenmenü ganz woanders im Programm gesetzt wird,<br>
    gibt es da keine Probleme.<br>
    Erzeuge ich den Standardfont jedoch in FormCreate, nimmt Delphi zwar die Zuweisung<br>
    an (Richedit.font.name ist tatsächlich Nuptial BT), stellt aber trotzdem alles in seiner<br>
    ursprünglichen Schrift dar.<br>
    Ich suche schon kräftig, aber ich finde einfach nicht den Grund.<br>
    Könnt Ihr mir helfen?<br>

    Gruß<br>
    Matthias

  • #2
    versuch mal vor diesem Assignment RichEdit.HandleNeeded

    Comment


    • #3
      Hallo Hagen,<br>

      vielen Dank. das war's tatsächlich. Der Handle wurde gebraucht.<br>
      Was mich irritiert hat - und deshalb bin ich nicht selber auf die Idee gekommen, dass<br>
      in richedit.font breits alle zugewiesenen Werte ordentlich drinstanden und<br>
      ich dachte, dass ginge ohne Handle nicht.<br>
      Es wurde eben nur nicht gemacht.<br>

      Gruß<br>
      Matthia

      Comment


      • #4
        Die Fonts werden durch die VCL als "Schattenwerte" gespeichert auch wenn garkein RichEdit-Handle erzeugt wurde. Allerdings funktioniert das nicht mit dem Paragraphen-Formatierung, sprich Absatzformatierungen. Um diese zu setzen müsste mit SendMessage(RIchEdit.handle, em_SetParaFormat ) diese dem Fensterhandle mitgeteilt werden. Allerdings wird in der VCL RichEdit.Perform() dazu benutzt und dieses reicht alle Messages nur durch falls ein gültiges Handle erzeugt wurde, falls nicht landen diese Messages im Nirwana.<br>
        So gesehen biste auf einen Fehler in der VCL Logik gestoßen.<br>
        Ähnliches kann man bei ComboBox.ItemIndex feststellen.

        Gruß Hage

        Comment

        Working...
        X