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

cs_philpas Messages postés 77 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 4 septembre 2008 - 15 févr. 2006 à 12:12
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 16 févr. 2006 à 12:30
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

cs_philpas Messages postés 77 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 4 septembre 2008
15 févr. 2006 à 13:03
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
@+
0
cs_philpas Messages postés 77 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 4 septembre 2008
15 févr. 2006 à 13:54
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
@+
0
cs_philpas Messages postés 77 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 4 septembre 2008
15 févr. 2006 à 14:24
y a t-il un moyen de connaitre le nb de ligne qu'un richedit peut afficher?
0
flor003 Messages postés 118 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 19 juin 2007
15 févr. 2006 à 14:59
richEdit.lines.count
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_philpas Messages postés 77 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 4 septembre 2008
15 févr. 2006 à 15:24
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)

@+
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
15 févr. 2006 à 20:56
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.
0
flor003 Messages postés 118 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 19 juin 2007
16 févr. 2006 à 10:22
salut !

Delphiprog : c'est normal il faut rendre à César ce qui appartient à César.
a++
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
16 févr. 2006 à 12:30
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.
0
Rejoignez-nous