Effacement et TRichEdit [Résolu]

Signaler
Messages postés
207
Date d'inscription
mercredi 5 mars 2003
Statut
Membre
Dernière intervention
29 mars 2013
-
Messages postés
207
Date d'inscription
mercredi 5 mars 2003
Statut
Membre
Dernière intervention
29 mars 2013
-
Bonjour !

J'ai besoin d'aide pour simuler un effacement d'un caractère avant ou après le curseur dans un TRichEdit avec son ReadOnly à True car je veux contrôler tous les faits et gestes de l'utilisateur donc je réécrit l'effacement.

J'ai pensé à envoyer un message WM_CHAR à mon TRichEdit avec le caractère 8 (pour avant) mais rien ne se passe.

Merci de m'aider.

@+

SISI231

3 réponses

Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
3
Bonjour sisi231,

Voici un moyen d'effacer un caractère avant ou après le curseur.
Il y a peut-être une solution plus "élégante", mais elle marche : sauf pour l'effacement d'une ligne vide (ajouter dans ce cas du code pour supprimer la line).

procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ((Key = VK_BACK) and (RichEdit1.SelStart > 0))
or (Key = VK_DELETE) then
begin
with RichEdit1 do
begin
if Key = VK_BACK then
Selstart := SelStart -1; // on part du caractère avant le curseur
SelLength := 1; // on sélectionne ce caractère
end;
if true // tes conditions pour permettre d'effacer
then
begin
RichEdit1.ReadOnly := false;
RichEdit1.SelText := ''; // effacement du caractère
RichEdit1.ReadOnly := true;
Key := 0; //pour supprimer le beep
end;
end;
end;

J'espère avoir pu t'aider.
Thierry
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
3
Correction :
pas besoin de mettre ReadOnly := false.
Messages postés
207
Date d'inscription
mercredi 5 mars 2003
Statut
Membre
Dernière intervention
29 mars 2013
5
Merci ça marche !
SISI231