Memo et Tstringlist [Résolu]

Signaler
Messages postés
24
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
27 juillet 2010
-
Messages postés
24
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
27 juillet 2010
-
slt cest parexmple jai S:Tstringlist;
et je fait
S.add 'Voiture Toyota'
s.add 'Voiture Honda'
s.add 'Voiture Wolk wagen'
comment je peu fair les afficher sur un memo, comme suit:
_____________memo1_______________
| Voitur Wolkwagen
| Voiture Toyota
| Voiture Honda
| |
|
et un button qui permet des les melanger,presque aliatoire.merci d'avance;

13 réponses

Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
7
Lut'

Memo1.Lines.BeginUpdate;
try
 Memo1.Lines.Clear;
 Memo1.Lines.AddStrings(S)
finally
 Memo1.Lines.EndUpdate;
end;


Si ça te suffit pas et qu'il faut un format particulier, alors tu peux faire une boucle sur tous les éléments du TStringList et formatter les chaînes une par une, puis les ajouter.

Cordialement, Bacterius !
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
7
Memo1.Lines.BeginUpdate;
try
 Memo1.Lines.Clear;
 for I := 0 to S.Count - 1 do
  // tu fais ton formatage avec la ligne du stringlist "S.Strings[I]"
  // puis quand t'as fini tu l'ajoute au mémo avec Memo1.Lines.Add(machaineformatée)
finally
 Memo1.Lines.EndUpdate;
end;


Cordialement, Bacterius !
Messages postés
3810
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
28 mai 2020
29
Salut,

pour ajouter un TStrings il n'est pas utile d'appeler "BeginUpdate" avant et "EndUpdate" après ... c'est déjà dans prévu dans le code de la VCL.
Extrait de la Classe TStrings:
[hr]procedure TStrings.AddStrings(Strings: TStrings);

[b]var
  /bI: Integer;
[b]begin
  /bBeginUpdate;
  [b]try
    for /bI := 0 to Strings.Count - 1 [b]do
      /bAddObject(Strings[I], Strings.Objects[I]);
  [b]finally
    /bEndUpdate;
  end;
end;
[hr]


[hr]@+Cirec
[hr]
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
7
Merci Cirec, je ne le savais pas ça
Par contre pour la boucle il le faut non ?

Cordialement, Bacterius !
Messages postés
3810
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
28 mai 2020
29
oui pour la boucle ...
toutes les autres méthodes d'ajout (Add, AddObject, Insert) en sont dépourvues

(Assign(TStrings), AddString, Exchange, LoadFromFile, LoadFromStream, Move) l'ont

[hr]@+Cirec
[hr]
Messages postés
24
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
27 juillet 2010

MErci bcp Bacterius et pour la boucle^^?
Messages postés
24
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
27 juillet 2010

Merci les gars.
Messages postés
24
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
27 juillet 2010

mais Ya un message d'erreur qui saffiche lors l'execution ..acces violation..
alors mon blem nest pas encore resolu.
je croxi que sa marche aps avec avec Tstringlist jai essyer avec listbox mais jai la meme erreur.mais merci comeme, je vais poster un autre message plus detaillé.
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
7
Tu l'as créé ton TStringList ?

Cordialement, Bacterius !
Messages postés
24
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
27 juillet 2010

oui
Messages postés
24
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
27 juillet 2010

jai fait s.creat;
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
7
Pas comme ça qu'il faut faire. Puisque S n'est pas encore créé tu ne peux pas appeller S.Create. En fait il faut faire :

S := TStringList.Create


et quand tu n'en as plus besoin :

S.Free




Cordialement, Bacterius !
Messages postés
24
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
27 juillet 2010

MErci lamais