uses Winapi.RichEdit;
const
  CFE_STRIKEOUT = $0008;
  CFM_STRIKEOUT = $0008;
  EM_SETCHARFORMAT = WM_USER + 68;
  SCF_SELECTION = $0001;
// 应用删除线
procedure TForm1.ApplyStrikeoutAPI;
var
  cf: TCharFormat;
begin
  FillChar(cf, SizeOf(cf), 0);
  cf.cbSize := SizeOf(cf);
  cf.dwMask := CFM_STRIKEOUT;
  cf.dwEffects := CFE_STRIKEOUT;
  
  SendMessage(RichEdit1.Handle, EM_SETCHARFORMAT, SCF_SELECTION, LPARAM(@cf));
end;

// 取消删除线
procedure TForm1.RemoveStrikeoutAPI;
var
  cf: TCharFormat;
begin
  FillChar(cf, SizeOf(cf), 0);
  cf.cbSize := SizeOf(cf);
  cf.dwMask := CFM_STRIKEOUT;
  cf.dwEffects := 0;  // 移除删除线效果
  
  SendMessage(RichEdit1.Handle, EM_SETCHARFORMAT, SCF_SELECTION, LPARAM(@cf));
end;

image