Okay ich hab einiges probiert, aber es scheint einfach nicht zu klappen. Nochmal zum Verständnis: Ich will einen Button der den Text hochstellt, beziehungsweise wenn er hochgestellt ist soll er ihn wieder normal setzen.
Aber die Abfrage oder der Text hochgestellt ist scheint nicht zu klappen...
Ich hab schon mehreres probiert:
Delphi-Quellcode:
var Formatierung: TCharFormat2;
procedure TEditor.HochgestelltExecute(Sender: TObject);
begin
Formatierung.cbSize := SizeOf(Formatierung);
Formatierung.dwMask := SendMessage(Text.Handle, EM_GETCHARFORMAT, SCF_SELECTION, 0);
Formatierung.dwMask := Formatierung.dwMask or CFM_SUPERSCRIPT;
if Formatierung.dwMask = CFM_SUPERSCRIPT
then Formatierung.dwEffects := Formatierung.dwEffects or CFE_SUPERSCRIPT
else Formatierung.dwEffects := Formatierung.dwEffects and not CFE_SUPERSCRIPT;
SendMessage(Text.Handle, EM_SETCHARFORMAT, SCF_SELECTION, DWORD(@Formatierung));
end;
oder
Delphi-Quellcode:
var Formatierung: TCharFormat2;
procedure TEditor.HochgestelltExecute(Sender: TObject);
begin
Formatierung.cbSize := SizeOf(Formatierung);
Formatierung.dwMask := SendMessage(Text.Handle, EM_GETCHARFORMAT, SCF_SELECTION, 0);
if Formatierung.dwMask = CFM_SUPERSCRIPT
then begin
Formatierung.dwEffects := Formatierung.dwEffects and not CFE_SUPERSCRIPT;
Formatierung.dwMask := Formatierung.dwMask and not CFM_SUPERSCRIPT;
end
else begin
Formatierung.dwEffects := Formatierung.dwEffects or CFE_SUPERSCRIPT;
Formatierung.dwMask := Formatierung.dwMask or CFM_SUPERSCRIPT;
end;
SendMessage(Text.Handle, EM_SETCHARFORMAT, SCF_SELECTION, DWORD(@Formatierung));
end;
Bei der Anweisung
Formatierung.dwMask := SendMessage(Text.Handle, EM_GETCHARFORMAT, SCF_SELECTION, 0);
scheint einfach nicht der richtige Rückgabewert zu kommen. Woran könnte das liegen?