string_poet Geschrieben 31. März 2003 Teilen Geschrieben 31. März 2003 Mahlzeit! ich hätt da ein Problem: Ich soll im Zuge des Erlernens der Oberflächenprogrammierung mit der Borland C++ Builder 5 IDE einen kleinen TextEditor schreiben. Hauptbestandteil ein (T)RichEdit Text-Feld, in dem man ja außer bloßem Text auch u.A. Ausrichtung und Formatierungen zuweisen kann. Die einzelnen Formatierungen kann man per Check-Box aktivieren bzw. deaktivieren. jetzt hat man gelernt per Befehl rchedtText->SelAttributes->Styles << fsBold; Formatierungen hinzuzufügen und sie per ... >> fsBold; wieder zu entfernen. Dies geschieht also wenn die CheckBox.Checked() = true bzw false ist. Soweit sogut. Jetzt ergibt sich folgendes problem. Ist der Text (oder ein Bereich davon) bereits mit einem Style formatiert und man fügt eine Weitere formatierung hinzu, verliert der Text (im Bereich der Markierung) seine vorherige Formatierung und besitzt also nur noch die gerade aktivierte. Dabei tritt noch ein weiteres Problem auf: die alte Formatierung geht zwar verloren, aber die Check-Box ist immernoch Checked, obwohl das für den Text-Bereich nicht zutreffend ist. Ich dachte also an ein Ereignis zur Überprüfung der Textformatierung an der Stelle, an die sich der Cursor bewegt (also wohin die Maus Clickt und wieder loslässt). Die Befehl den ich zum Überprüfen der gesetzten Formatierungsattribute verwende, lautet: rchedtText->SelAttributes->Styles.Contains(fsBold); Das Ereignis das ausgeführt werden soll: rchedtText::OnMouseUp (?) Das war ein steiniger Weg bis hierher, nur so hab ich es gesagt bekommen, dass es funzen würde. NUR: kompiliere ich jetzt, funktioniert das noch, starte ich das Programm aber, bekomme ich sofort einen Laufzeitfehler (noch bevor ich die Maske sehe) und in einer .hpp die Fehlerstelle markiert. Ich kann morgen ja mal genaueres dazu posten - hab das Projekt grad nicht da. Wär stark wenn mir da jemand helfen könnte... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.