Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : TList et Tobject : Probleme d'ajout [ Divers / Débutant(e) ] (mobilotek )

mardi 30 mai 2006 à 18:59:44 | TList et Tobject : Probleme d'ajout

mobilotek

Bonjour;

j'utilise une liste (PlayList) de fichier (TFichier), et apres  l'ajout d'elements, cest toujours le meme qui est present lors d'une consultation. Voyez donc ces extrait de codes pour voir s'ils sont bons :

Declarations :
TFichier = class(TObject)
  public
    Nom : string;
    Dossier : string;
    Complet : string;
    Info : FicMP3;
    Tag : UnTag;
    constructor init(enom: string ; echemin : string ; ecomplet : string);
  end;

PlayList=class(TList)
  public
      nb_elem : integer;
      nb_sel : integer;
      procedure init();
      procedure compiler();
      function obtenir_elem_sel():TFichier;
      function charger_chemin() : string;
      procedure sauver_chemin(ad : string);
   end;

Ajout:
procedure PlayList.compiler();
var
    i,nb : integer;
    Fich : TFichier;

begin
     Media:=Media_Play.create();
     nb:=0;
     For i := 0 to Form1.Liste.items.Count-1 do begin
        Fich.Nom := Form1.Liste.Items[i].Caption;
        Fich.Dossier := Form1.Liste.Items[i].SubItems.Strings[0];
        Fich.Complet:=Fich.Dossier + '\' + Fich.Nom;
        nb:=nb+1;
        LaList.add(Fich);      //ou "add(Fich)";
     end;
     LaList.nb_elem := nb;
end;

Lecture

 
 for i := 0 to nb_elem-1 do begin
    fich := LaList.items[i];
    x := fich.Nom;      //==> Toujours le meme element!
  end;

mardi 30 mai 2006 à 22:50:04 | Re : TList et Tobject : Probleme d'ajout

jace1975

Réponse acceptée !

plusieurs remarques en lisant ton code en diagonale (je viens juste voir si qqu'un a répondu à ma question):

  • déjà réécrit le PlayList.compiler(); en rajoutant un paramètre dans l'appel de la procédure, car mettre form1 à l'intérieur ca va t'attirer des pbs tôt ou tard.
  • perso j'utilise, même s'il existe qques bugs, Tobjectlist plutot que Tlist.

sur ton pb je pense qu'il faudrait plutot écrire un truc du genre(pas testé) :

   Media:=Media_Play.create();
     nb:=0;
     For i := 0 to Form1.Liste.items.Count-1 do begin
         fich:=tfichier.create();// on alloue l'espace mémoire pour chaque objet de ta liste 
{extrait de la doc delphi a tobject.create 
Create construit un objet. ....Le constructeur Create défini par TObject alloue de la mémoire mais n'initialise pas les données
alors que dans ton code tu alloue un seul objet }


        Fich.Nom := Form1.Liste.Items[i].Caption;
        Fich.Dossier := Form1.Liste.Items[i].SubItems.Strings[0];
        Fich.Complet:=Fich.Dossier + '\' + Fich.Nom;
        nb:=nb+1;
        LaList.add(Fich);      //ou "add(Fich)";
     end;
     LaList.nb_elem := nb;



mardi 30 mai 2006 à 23:19:33 | Re : TList et Tobject : Probleme d'ajout

mobilotek

Merci!!

Suis-je bête, il faut initialiser l'objet Fichier avant de s'en servir.

Quel est ton probleme, au fait?



Cette discussion est classé dans : end, string, ajout, nb, fich


Répondre à ce message

Sujets en rapport avec ce message

String, DLL et exportation de classe [ par Bilou972 ] Voici une chose que j'aurai du faire il y deja bien longtemps, je suis en bts info deuxieme annee, l examen approche et je suis toujours bloqué sur l' Paramètres par adresse et non par valeur [ par Bruto ] J'utilise qq fonctions et procédures qui ont pour but de de générer un numéro CLSID.Le prob est que je n'arrive pas à passer mes paramêtres par adress envoi de repertoire d'un serveur avec socket [ par cybersky ] bonsoir voila avec le code suivant j'arrive bien a recevoir la liste des fichiers mais je voudrais avoir la liste des sous dossiers et en affichant le Tfilestream : problème de lecture du fichier [ par bv94 ] Bonsoir,mon problème est le suivant : je créé un type Toperation qui hérite de Tfilestream. Mais les fonctions de tfilestream que j'utilise (read, see Remplacement de caractères pour chaques lettres [ par tony1239456 ] Bonjour, je voudrais savoir si il existe une fonction permettant de remplacer des caractères dans une chaine différents pour chaques lettres. Par exem Problème de récursivité? [ par basile9 ] Bonjour J'ai adapté une procédure récursive, qui marchait très bien en TP7, pour Delphi 6, dans un programme console. Voiçi cette procedure, à base Utlisation des attributs de la classe 1 de unit1 dans unit2 [ par emidelphi ] le thread repond a ma question mais j'ai essayer ce que vous avez decris mais ca marche pas . j'ai le classe suivante dans unit1 : Classe1 = class(TOb openoffice.org(ooo) et la couleur de fond d'une cellule [ par Tiekula ] J'arrive a ouvrir un fichier exel avec ooo mais pas a trouver la couleur d'une cellule donnée de ce fichier! mon code : unit Unit1; interface use Problème dans un composant avec Winsock [ par Francky23012301 ] Salut à tous,Voila un bout de composant,------------------------------unit SMTPClient; interface usesWindows,WinSock,Classes; type  TIdentificat Bien installer un API [ par Also know as ] Bonjour a tous, Bon alors apres une longue surune certaine erreur enfin resolu :-), on m'a conseille d'utiliser un nouvel API. Je souhaiterais utilise


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.