Forcer la mise à jour du correcteur orthographique TRichEdit
Lorsque l’on active la vérification orthographique dans un TRichEdit via l’API Windows, il arrive que le contrôle n’analyse pas immédiatement le texte déjà présent.
Le correcteur ne se déclenche alors que sur les nouvelles frappes.
Pour contourner ce comportement, on peut utiliser une astuce simple : forcer le RichEdit à recharger son contenu, ce qui déclenche automatiquement une nouvelle analyse orthographique.
procedure UpdateSpellChecking(RichEdit: TRichEdit);
var
Stream: TMemoryStream;
begin
if not Assigned(RichEdit) then Exit;
Stream := TMemoryStream.Create;
try
with RichEdit do
begin
Lines.BeginUpdate;
try
SelectAll; // Sélectionne tout le texte
Lines.SaveToStream(Stream); // Sauvegarde dans un flux mémoire
SendMessage(Handle, WM_KEYDOWN, VK_DELETE, 0); // Simule une suppression
Stream.Position := 0;
Lines.LoadFromStream(Stream); // Recharge le texte
finally
Lines.EndUpdate;
end;
end;
finally
Stream.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
UpdateSpellChecking(RichEdit1);
end;Un petit clic (J'aime) qui fait plaisir !