Einzelnen Beitrag anzeigen

user64629
(Gast)

n/a Beiträge
 
#5

AW: Charformat nach CFM_SUPERSCRIPT wieder normal setzten?

  Alt 8. Mai 2011, 13:14
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?
  Mit Zitat antworten Zitat