Différence de résultat avec richedit sous W95 et W2000

Signaler
Messages postés
77
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
4 septembre 2008
-
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
-
Bonjour,
J'ai un petit problème. Dans un richedit j'affiche la réception des données du port série. Les lignes défilent une à une. J'utilise ça. SendMessage(RichEdit2_Reception.Handle, WM_VScroll, SB_LINEDOWN, 0); pour faire monter l'affichage d'une ligne. Sous W2000, tout fonctionne bien. Richedit m'affiche jusqu'à la dernière ligne (le curseur de scrollbar est tout en bas). Mais lorsque j'utilise mon programme sous W95 ou sous W98, je n'ai pas le même résultat. On dirait que l'affichage est en retard et lorsque la réception est fini, j'ai une page blanche lorsque la scrollbar est en bas (si je remonte la scrollbar d'une ligne vers le haut, je vois la dernière ligne reçu) et si je règle ce problème sous W95 ou W98, c'est sur W2000 que j'ai ce phénomène.
Donc 2 questions:
Comment dois faire pour que richedit fonctionne de la même manière quelque soit le système d'exploitation? si c'est possible. sinon
si je dois connaitre le système d'exploitation pour rajouter des instructions if .Comment je trouve l'info pour connaitre le système d'exploitation utilisé?

@+

8 réponses

Messages postés
77
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
4 septembre 2008

qu'est ce qui n'est pas possible? le problème de richedit?

si c'est cela que tu veux dire, fait le test suivant avec un bouton et un richedit qui t'affiche 13 lignes

procedure TFiche_Parametrage.Button1Click(Sender: TObject);
var Ligne_Emission:TStringList;
i:integer;
begin
Ligne_Emission:=TStringList.Create;
ligne_Emission.LoadFromFile('m.txt'); // mettre le nom d'un fichier texte assez long
i:=-1;
repeat
i:=i+1;
RichEdit2_Reception.Lines.Add(ligne_Emission[i]);
SendMessage(RichEdit2_Reception.Handle, WM_VScroll, SB_LINEDOWN, 0);
until i=ligne_Emission.Count-1;
Ligne_Emission.Free;
end;

sous W2000 ça marche et sous W9* ça affiche une page en retard et si je met la scrollbar tout en bas j'ai une page blanche de 13 lignes

sinon merci pour m'avoir dit comment trouver le n° du système d'exploitation
@+
Messages postés
77
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
4 septembre 2008

j'ai fait d'autre test et je constate que sous W9* la scrollbar de richedit permet de faire monter le texte de la dernière ligne jusqu'à que cette ligne disparaissent de l'écran. Donc c'est pas le problème et la solution que je pensais au départ
@+
Messages postés
77
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
4 septembre 2008

y a t-il un moyen de connaitre le nb de ligne qu'un richedit peut afficher?
Messages postés
118
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
19 juin 2007

richEdit.lines.count
Messages postés
77
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
4 septembre 2008

non je ne crois pas richEdit.lines.count donne le nb de ligne contenu dans richedit et non le nb de ligne que (comment dirais je ?) richedit affiche à l'écran.
J'explique richedit sur ta form à une hauteur (X pixels), la police de caratère utilisé à une hauteur de Y pixel. Le nb de ligne que richedit peut afficher à l'écran est X pixel/Y pixel. C'est cela que je voudrais savoir, une fonction de genre count mais qui donne la valeur X/Y pixel en quelque sorte (Le nb de ligne que richedit peut afficher dans sa surface)

@+
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
As-tu vérifié les versions des bibliothèques riched.dll dans le répertoire windows ?
Selon le niveau de version, les résultats sont différents, notamment en nombre de lignes acceptées.

flor003 : merci pour le lien

<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Messages postés
118
Date d'inscription
dimanche 28 septembre 2003
Statut
Membre
Dernière intervention
19 juin 2007

salut !

Delphiprog : c'est normal il faut rendre à César ce qui appartient à César.
a++
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Je viens de m'apercevoir que ma question est erronnée : il s'agit de la biliothèque riched20.dll et non riched.dll.
Errare humanum est


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.