So kriegst du es nicht hin, also zu allem eine 1 addieren oder subtrahieren. Der Grund ist, dass ein markierter Text nicht die gleiche Fontgröße haben muss. Er kann, muss aber nicht. Das geht bei TMemo, die eine Größe hat, auch bei DefAttributes, da sie für ganzen Text gilt, aber nicht für SelAttributes.
Deshalb in TTextAttributes, also auch unter SelAttributes zu finden, die Methode ConsistentAttributes. Die sagt dir ob der markierte Block zusammen Fett oder nicht ist, gleiche Farbe hat, gleiche Schriftgröße, gleiche Schrift usw. ConsistentAttributes sagt dir also nicht die Schriftgröße, sondern ob alle gleich groß sind, oder, oder, oder.
Delphi-Quellcode:
with RichEdit1 do
begin
...
SelLength := 16;
if caBold in SelAttributes.ConsistentAttributes then
ShowMessage('Alles zusammen ist fett') else
ShowMessage('Einige Zeichen sind fett, andere nicht');
end;
Wenn du den Schriftgrad um einen Punkt erhöhen willst, dann mußt du den ganzen Text einzeln analysieren und erhöhen. Und mit einer Funktion krisgst du das nicht hin. Dazu mußt du programmieren.