RichEdit

Signaler
Messages postés
15
Date d'inscription
vendredi 11 septembre 2015
Statut
Membre
Dernière intervention
14 décembre 2016
-
Messages postés
675
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
-
Bonsoir,

Jutilise un RichEdit1 pour afficher des donnée en voici le code :

for n := 1 to StrToInt(seriale1.SiC_PunchingCounter) do
if (seriale1.SiC_PunchingCounter <> '0') then
RichEdit1.Lines.Append(+seriale1.SiC_PunchingCodeNumbers[n]); //Punching time

Je m'explique Seriale1 est un composant pour me connecter à un boitier electronique qui receptionne
des donné provennant d'une puce éléctronique.

Quand j'insert ma puce dans ce boitier cela me fais plusieurs ligne or je souhaiterais que
ca face une seule ligne.

Quelqu'un pourrais m'aider?

5 réponses

Messages postés
199
Date d'inscription
samedi 15 novembre 2003
Statut
Membre
Dernière intervention
10 septembre 2020
7
salut
quelle ligne veut tu afficher ?? la première la dernière une autre ??

quand tu fait
for n := 1 to StrToInt(seriale1.SiC_PunchingCounter) do 
if (seriale1.SiC_PunchingCounter <> '0') then

c'est normal que tu affiche autant de lignes qui correspondent a
seriale1.SiC_PunchingCounter <> '0'

--

papyvore
Messages postés
420
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
6 mai 2019
16
Salut,

pourquoi un RichEdit ?

Si j'ai bien compris ce que tu veux obtenir, tu peux concaténer le chaque résultat de la boucle dans une chaîne (string), et, après l'exécution de la boucle, afficher ce résultat dans le RichEdit, comme ça :

var
  n: Integer;
  s: string;
begin
  s := '';
  for n := 1 to StrToInt(seriale1.SiC_PunchingCounter) do
  if (seriale1.SiC_PunchingCounter <> '0') then
    //RichEdit1.Lines.Append('' + seriale1.SiC_PunchingCodeNumbers[n]);
    s := s + seriale1.SiC_PunchingCodeNumbers[n];
  RichEdit1.Lines.Text := s;
end;
Messages postés
3818
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
18 septembre 2020
34
Salut,

je vois plutôt quelque chose comme:
var
n: Integer;
s: string;
begin
s := '';
if (seriale1.SiC_PunchingCounter <> '0') then
for n := 1 to StrToInt(seriale1.SiC_PunchingCounter) do
s := s + seriale1.SiC_PunchingCodeNumbers[n];
RichEdit1.Lines.Text := s;
end;

ça évite des testes inutiles ;)
Messages postés
420
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
6 mai 2019
16
Bien vu (encore une fois) Cirec !
Je m'étais focalisé sur la question posée, sans avoir remarqué le manque de logique du code...
Messages postés
3818
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
18 septembre 2020
34 >
Messages postés
420
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
6 mai 2019

^^
ça m'arrive aussi va ... faut pas croire ;)
Messages postés
15
Date d'inscription
vendredi 11 septembre 2015
Statut
Membre
Dernière intervention
14 décembre 2016

Merci

voici le code adapté à mon besoin

if (seriale1.SiC_PunchingCounter <> '0') then begin

RichEdit1.SelAttributes.Color := clNavy;
RichEdit1.Lines.Add(seriale1.SiC_FirstName+ ' '+ seriale1.SiC_SurName+' '+seriale1.SiC_No+' arrivé à : '+seriale1.SiC_FinishTime);
RichEdit1.Lines.Add('Heure de lecture : '+TimeToStr(Now));
RichEdit1.Lines.Add('Nombre de poste : ' + seriale1.SiC_PunchingCounter);
for n := 1 to StrToInt(seriale1.SiC_PunchingCounter) do
s := s +' '+ seriale1.SiC_PunchingCodeNumbers[n];
RichEdit1.Lines.Add( s);
end;
Messages postés
675
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
13
La variable s est initialisée comment et quand ?
( s := s + xxxx )
Messages postés
3818
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
18 septembre 2020
34
Merci

voici le code adapté à mon besoin
...

ben on est loin de la question de départ
et on avait pas autant de précisions pour en arriver là !!!

faut presque être voyant ^^