Empecher le scroll automatique dans un richedit [Résolu]

Messages postés
35
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
25 mars 2007
- - Dernière réponse : japee
Messages postés
1708
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
5 octobre 2019
- 16 nov. 2004 à 21:35
Hello,

J aurais aimé savoir comment on peut empecher le scrolling automatique qui est provoqué par =>

richEdit.SelText := sTmp;

car lorsque je veux modifer un texte volumineux, le scroll automatique se fait et j aimerais éviter pour que l utilisateur s apercoive de la modification du texte vu que c est une modification de selattribute que je fait en gros la couleur....

Merci d avance.

Arnaud
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
35
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
25 mars 2007
3
Merci
Désolé les gars de vous avoir embeté mais j ai trouvé....

Merci pour tout en fait j ai cherché trop complitqué alors qu il y avait beaucoup plus simple

RichEdit.PlainText := false;
RichEdit.SelText := getRTFHeader + sTotalLineToWrite + '}';
RichEdit.PlainText := true;

et ca marche LOL... c est juste qu il me semnblait que j avais essayé et pfff, j avais du fair une connerie car ca amrchait pas...

En tout cas merci beaucoup......

Arnaud

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 201 internautes nous ont dit merci ce mois-ci

Commenter la réponse de arnaud_tournier
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
4
0
Merci
Salut,

Tout ce que je peux te conseillée c'est de bloquer le raffraichissement de l'ecran avec cette commande :

Try
LockWindowUpdate(Form1.Handle); //On bloque l'affichage de l'écran sur la fenetre 1
{Ici tu fais tes modifications}

finally
LockWindowUpdate(0); //On debloque l'affichage de l'écran
end;

Voila dis moi si ca fonctionne avec ça.

Bonne prog,
JMP77.
Commenter la réponse de jmp77
Messages postés
1708
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
5 octobre 2019
1
0
Merci
Si la solution de jmp77 ne te convient pas (?), j'en ai une autre qui utilise les messages Windows.

Mais je suis étonné que la sélection d'un texte dans un TRichEdit provoque automatiquement le scrolling.

Peut-être si tu balançais ton bout de code, même simplifié ?

Enfin, tiens-nous au courant.

Bonne prog' :-p

japee

N'oubliez pas de valider "Réponse acceptée" si ça vous convient, de toute manière vous ne pouvez pas valider autre chose, mdr ! :big)
Commenter la réponse de japee
Messages postés
1708
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
5 octobre 2019
1
0
Merci
Je voulais évidemment dire que j'étais étonné que le remplacement d'un texte sélectionné dans un TRichEdit, en fonction de la position du curseur, et aussi long que soit le texte de remplacement, provoque automatiquement le scrolling... Je n'ai pas cet effet chez moi...

N'oubliez pas de valider "Réponse acceptée" si ça vous convient, de toute manière vous ne pouvez pas valider autre chose, mdr ! :big)
Commenter la réponse de japee
Messages postés
35
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
25 mars 2007
0
Merci
Merci pour vos réponses mais la solution de jmp77 ne marche pas dans mon cas, mais effectivement japee tu as raison je n ai peut etre pas été assez clair en fait ce n est pas quand je change le seltext mais quand je fais un SetSelRichText comme l'implémentation suit =>

procedure TFrmChild.SetSelRichText(Stream: TStream);
// Loads the (formatted) contents of the stream to the RichEdit.
var
editStream: TEditStream;
numChars: integer;
begin
Stream.Seek(0, soFromBeginning);
editStream.dwCookie := longint(Stream);
editStream.dwError := 0;
editStream.pfnCallback := @EditStreamIn;
numChars := SendMessage(RichEdit.Handle, EM_STREAMIN, SF_RTF or SFF_SELECTION, longint(@editStream));
end;

avec editstream =>

function EditStreamIn(dwCookie: Longint; pbBuff: PByte;cb: Longint; var pcb: Longint): Longint; stdcall;
var
theStream: TStream;
begin
theStream := TStream(dwCookie);
Result := 0;
with theStream do
begin
if (Size - Position) <= cb then
begin
pcb := Size;
Read(pbBuff^, Size - Position);
end
else
begin
pcb := cb;
Read(pbBuff^, cb);
end;
end;
end;

en fait je voudrait insérer dans mon texte du texte au format RTF et j ai trouvé que cette solution mais le problème est que y a le scroll qui se déclanche, snifff....

donc j aimerais soit sonnaitre un autre moyen pour insérer du texte RTF ou empecher le scroll....

merci d avance

Arnaud
Commenter la réponse de arnaud_tournier
Messages postés
1708
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
5 octobre 2019
1
0
Merci
Pas de problème, arnaud_tournier, tu m'as fait mettre un peu d'ordre dans certains bouts de code que j'avais égarés.
Je vais faire un peu de rangement, faut absolument que je m'y mette...

Si tout va bien pour toi, c'est OK ;)

japee

N'oubliez pas de valider "Réponse acceptée" si ça vous convient, de toute manière vous ne pouvez pas valider autre chose ! :big)
Commenter la réponse de japee