IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Fichier ressource non trouvé


Sujet :

Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    pas grand chose
    Inscrit en
    Septembre 2018
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : pas grand chose
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2018
    Messages : 131
    Points : 73
    Points
    73
    Par défaut Fichier ressource non trouvé
    Bonjour

    J essaie d utiliser les ressources pour la première fois.
    J essaie de jouer un son wave.

    J ai suivi ce tuto https://delphicool.developpez.com/ressources/

    J ai donc utilisé le menu 'Projets/Ressources et images'.
    J ai ajouté mon son wav et édité la propriété 'identificateur de ressource' en 'tada'.
    J ai crée une procédure en copiant/collant le code du tuto dans une unité qui regroupe mes fonctions pour lire ce son (Hres := FindResource(0, pchar('tada'), 'WAV');.)
    Je déclare cette unité dans les uses de ma main form.

    J ai mis en variable public de ma Form1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var
     Res : TResourceStream ;
    J ai enfin modifié mon code comme suit : Enfin je tente de lire le wave dans le onclick d un bouton...
    Donc je crois avoir tout suivi comme il faut mais à la compilation j ai le message d erreur suivant :

    Ressource TForm1 non trouvé

    Bon comme je débute et que c est la première fois que je tente et la lecture d un fichier et je me demande où j ai péché.

    De plus j aimerais savoir s il est indispensable que je déclare ma variable Res : TResourceStream ; dans ma main form alors qu elle ne sera utilisée que dans l unité qui regroupe mes fonctions...

    Vos lumières me seront précieuses
    D avance merci pour votre aide

  2. #2
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Bonjour,

    je n'ai pas testé, mais je pense qu'il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {$R *.dfm,$R}
    {$R tada.res}
    A+
    Charly

    PS : au début du fichier DPR tu peux mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {$R Fichier.RES Fichier.RC}
    cette directive créé le fichier RES d'après le fichier RC qui doit se trouver dans le répertoire de l'application. Ensuite, dans l'unité qui utilise le fichier RES tu fais :

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 423
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 423
    Points : 1 326
    Points
    1 326
    Par défaut
    Bonjour à toutes et à tous,

    @ NewUserDelphi, pour un fichier de type wav voici ce que je ferai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
     
     
    implementation
     
    {$R *.dfm}
     
    {$R SonTest.RES} // Ton fichier ressource
     
     
    procedure TForm1.bwavClick(Sender: TObject);
    var
      hres: THandle;
      pres: PChar;
    begin
     // cherche le son représentant Data.wav soit sons1
      hres := FindResource(hInstance, pchar('Sons1'), 'wav');
      if hRes <> 0 then
      //si trouvé alors
      begin
        hres := LoadResource(hInstance, hres);
     
        //charge le son
        pres := LockResource(hres);
     
    Case bwav.Tag of
            0 :
        begin
         bwav.Caption := 'Stop';
         bwav.Tag := 1;
         sndPlaySound(pres, SND_NODEFAULT  or SND_ASYNC or SND_LOOP or SND_MEMORY);
        UnLockResource(hres);
        FreeResource(hres);
     
        end;
            1 :
        begin
        bwav.Caption := 'Ressource Wav';
        bwav.Tag := 0;
        sndPlaySound(nil, 0); // Stops the sound
     
        end;
        end;//Case of
    end;
    end;

    Ton fichier SonTest.res doit être ta ressource donc il faut le fichier "SonTest.rc" puis le compiler dans le dossier ou se trouve le fichier Wav pour obtenir "SonTest.res" :

    Sons1 WAV "Data.wav"

    Dans le Oncreate :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    procedure TForm1.FormCreate(Sender: TObject);
    var
      Res: TResourceStream;
    begin
     
    dirdir := ExtractFilePath(Application.ExeName);
    try
     
      Res := TResourceStream.Create(Hinstance, 'Sons1', 'Wav');
     
    //enregistre la ressource dans un fichier
    Res.SavetoFile('Data.wav');
     
      finally
        Res.Free;
          end;
    end;

    @+,


    cincap

  4. #4
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Sous Delphi XE10 ( et éventuellement les versions précédentes) tu as dans le menu principal-projet un item "Ressources et images", tu ajoute ton fichier Wav en tant que ressource. Dans mon cas j'identifie la ressource par "ressource_1"

    Ensuite pour charger la ressource tu as le code suivant dont voici un exemple pour un fichier texte et que tu peux transposer facilement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    var
      sl1: TstringList;
      Stream: TResourceStream;
    begin
      Stream := TResourceStream.Create(HInstance, 'Resource_1', RT_RCDATA);
      try
        sl1 := TstringList.Create;
        try
          sl1.LoadFromStream(Stream);
          ListBox1.Items.Text := sl1.Text;
        finally
          sl1.Free;
        end;
      finally
        Stream.Free;
      end;

  5. #5
    Membre régulier
    Homme Profil pro
    pas grand chose
    Inscrit en
    Septembre 2018
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : pas grand chose
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2018
    Messages : 131
    Points : 73
    Points
    73
    Par défaut
    Merci pour vos réponses

    J ai malgré tout toujours l erreur ' ressource tada introuvable' sur la ligne {$R tada.res} bien que ma ressource tada.wave soit bien presente et ajoutée comme il le faut à l aide de de l ide...

  6. #6
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Bien sûr, il ne faut pas oublier de construire (pas compiler) le projet pour inclure les ressources dans l'exe.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  7. #7
    Membre confirmé Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Points : 477
    Points
    477
    Par défaut
    Tu as aussi la solution de vérifier dans ton fichier .rc si ta ligne apparait bien, et que le chemin déclaré existe également. Tu peux l'éditer tout simplement avec Notepad.
    Et il faut que tu saches que tu peux compiler ton fichier .rc indépendamment de l'ide de Delphi, directement avec le compilateur de ressources qui se trouve quelque part comme : Borland\Delphi\Bin\brcc32.exe

    Au moment de compiler ton fichier de ressources, si le fichier .res n'apparait pas, c'est que ta ressource a été mal déclarée tout simplement, ou que ton fichier ne se trouve pas dans le chemin que tu auras donné.

  8. #8
    Membre régulier
    Homme Profil pro
    pas grand chose
    Inscrit en
    Septembre 2018
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : pas grand chose
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2018
    Messages : 131
    Points : 73
    Points
    73
    Par défaut
    merci je vais tester cela des demain.

  9. #9
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Sous Delphi XE10 ( et éventuellement les versions précédentes) tu as dans le menu principal-projet un item "Ressources et images", tu ajoute ton fichier Wav en tant que ressource. Dans mon cas j'identifie la ressource par "ressource_1"

    Voici l'exemple :
    Le ficher de ressources DRES est créé automatiquement via Delphi et sa référence se trouve dans le dpr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Stream: TResourceStream;
    begin
      Stream := TResourceStream.Create(HInstance, 'Resource_1', RT_RCDATA);
      sndPlaySound(Stream.Memory, (SND_ASYNC or SND_MEMORY));
      Stream.Free;
    end;
    Voici le ZIP : ResWav.zip

  10. #10
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Points : 4
    Points
    4
    Par défaut Jouer un son Delphi XE10.???. Merci à ALWEBER
    Salut à tous !

    Moi je voulais juste jouer un son application Android avec Delphi 10.3

    J'ai suivi le conseil de ALWEBER :
    Sous Delphi XE10 ( et éventuellement les versions précédentes) tu as dans le menu principal-projet un item "Ressources et images", tu ajoute ton fichier Wav en tant que ressource. Dans mon cas j'identifie la ressource par "ressource_1"

    Sous Windows sa marche :

    Pour une Appli Android:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.FormCreate(Sender: TObject);
     var Stream: TResourceStream;
    var FileName : string;
    begin
    FileName := Format('%s/Fleche.wav', [GetHomePath]);
     Stream := TResourceStream.Create(HInstance, 'Resource_1', RT_RCDATA);
     Stream.SavetoFile(FileName);
     MediaPlayer1.FileName := FileName;
     MediaPlayer1.Play;
    end;
    Merci encore à ALWEBER

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Sauf que, pour Android, les ressources sont en fait déployés comme des fichiers indépendants.
    donc il faut utiliser des $IFDEF pour modifier le chargement du fichier en fonction.
    Je ne sais plus dans quelle application j'ai fait ça, si je retrouve je poste
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  12. #12
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Points : 4
    Points
    4
    Par défaut
    Salut SergioMaster

    J'ai commencer sur TO9 avec des if (basic disquettes).

    Toi SergioMaster :
    Sauf que, pour Android, les ressources sont en fait déployés comme des fichiers indépendants.

    Moi Herve22 :
    Une ressource pour rien ? Non.

    Toi SergioMaster :
    Donc il faut utiliser des $IFDEF pour modifier le chargement du fichier en fonction.

    Moi Herve22 :
    $IFDEF ???

    Toi SergioMaster:
    Je ne sais plus dans quelle application j'ai fait ça, si je retrouve je poste.

    Moi Herve22 :
    Si rappelle toi sur ton disque dur externe 4 !!!

  13. #13
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Bonjour
    Citation Envoyé par herve22 Voir le message
    J'ai commencer sur TO9 avec des if (basic disquettes).
    Et alors ? moi il me semble que c'était sur un IBM3 (avec des cartes)

    Moi Herve22 :
    Une ressource pour rien ? Non.
    ai-je écrit pour rien ? Je signale simplement que seul windows connait cette histoire de ressource (selon delphi) et que Delphi biaise en créant un fichier par ressource.
    De ce fait, tout se passe dans le déploiement
    Nom : Capture.PNG
Affichages : 942
Taille : 22,1 Ko

    Moi Herve22 :
    $IFDEF ???
    Puisqu'il faut mettre les points sur les i, les directives de compilations. C'est plus explicite ?

    Toi SergioMaster:
    Je ne sais plus dans quelle application j'ai fait ça, si je retrouve je poste.
    Moi Herve22 :
    Si rappelle toi sur ton disque dur externe 4 !!!
    Très drôle mais moins sur la forme. Déjà pas mal que je me décarcasse à répondre, et, en passant merci à celui qui à (oui, ce n'est pas moi) estimant que la forme de la réponse était largement inappropriée.

    Je n'ai pas retrouvé et n'ai pas cherché plus loin que dans mon application Bingo (la seule testée Android où j'utilisais des sons), seulement si ma première version utilisait des fichiers sons, la version finale utilise du TextToSpeech.

    Peu importe, il m'a fallu que 30 mn pour concocter un petit programme test (chargement d'une image en ressource).
    L'astuce est dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure TForm125.Button1Click(Sender: TObject);
    begin
     {$IFDEF ANDROID}
       var f : String :=TPath.Combine(Tpath.GetDocumentsPath,'Capture.PNG');
       if FileExists(f) then Image1.Bitmap.LoadFromFile(f)
                        else raise exception.create('fichier '+f+' non trouvé');
     {$ENDIF}
     {$IFDEF MSWINDOWS}
      var res : TResourceStream := TResourceStream.Create(HInstance, 'Capture',RT_RCDATA);
      Res.Position := 0;
      Image1.Bitmap.LoadFromStream(res);
     {$ENDIF}
    end;
    Maintenant reste le problème de déploiement si tu veux mettre les fichiers ailleurs que dans assets/internal pour les mettre dans Tpath.GetMusicPath soit : /storage/emulated/0/Android/data/<application ID>/files/Music je n'ai aucune idée de ce qu'il faut indiquer au niveau du déploiement (ni même si c'est possible). De plus le type de fichier est certainement important, toujours à ma souvenance pour le programme cité, j'avais été obligé de faire une conversion vers des .3gp
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  14. #14
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    Sinon Paul Toth devrait pouvoir aussi aider sur ce sujet, il me semble qu'il a fait pour Delphi un exemple pour utiliser l'AssetManager et JContext.getAssets (Androidapi.AssetManager) et c'est ce dernier sur Android qui est recommandé pour les ressources de l'application (fichier déployé aussi via Deployment Manager)
    Voir donc System.StartUpCopy
    Sinon c'est le boulot de l'APK, si j'ai bien compris, c'est un all-in-one, ça installe tous les fichiers nécessaires pour le logiciel, donc l'utilisation de ressource à la façon WinAPI, ce n'est pas la méthode "normale" de fonctionnement pour cet OS, tu censé avoir les fichiers a dispo dans l'environnement du programme.

    Et les XFM, c'est géré comment, le code du TCommonCustomForm.Create semble chargé une ressource, FindResource et LoadResource sont disponible dans WinApi, Linux et Posix, si Android n'est pas l'un deux (linux non ?), comment ça fonctionne donc les XFM ?
    Cela utilise InitInheritedComponent composé de InternalReadComponentRes et FindResourceHInstance à partir de FindClassHInstance hors ce dernier n'est dispo que pour MSWINDOWS et POSIX, du coup ça fonctionne comment ?
    Il en est de même comment sont stockés les resourcestring ?
    D'ailleurs, je ne sais plus où j'ai lu ça mais un programme FMX sur Android, c'est un lanceur en Java qui lance une sorte VM en lui balançant le binaire ARM.


    Allez voir comment l'ELF est géré par l'ART ... en regardant autour de UPX/FUPX ... ce dernier peut faire des packages compressés, du moins c'est ce que j'ai compris, je ne faisais que de la VCL sous Windows, il fonctionnait bien, il était même automatisé pour les Build Release où je travaillais avant. Sinon l'ELF c'est comme le PE de Windows et c'est lui qui contient la table de ressource pour simplifier grossièrement, l'ELF en est il dépourvu ?


    Citation Envoyé par herve22 Voir le message
    ... Dans mon cas j'identifie la ressource par "ressource_1"

    Sous Windows sa marche :

    Pour une Appli Android:

    [CODE]...
    Stream := TResourceStream.Create(HInstance, 'Resource_1', RT_RCDATA);
    ...


    sinon 'ressource_1' et 'Resource_1'ce n'est pas la même chose, déjà commencez par vérifier l'orthographe et la casse, on ne sait jamais, peut-être une erreur bête du R et r si l'on considère que cela fonctionne sur windows donc le bon nombre de s.

    Bon je n'y crois pas trop tout dans le documentation évoque GetDocumentsPath et GetSharedDocumentsPath
    Et ce n'est pas comme ci c'était un exemple de base : FMX.PlayAudioFile
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fichier hbm non trouvé à l'exécution
    Par mouaa dans le forum Hibernate
    Réponses: 11
    Dernier message: 28/10/2008, 12h47
  2. ressource non trouvé : getSystemResource
    Par Nexussmb dans le forum Langage
    Réponses: 6
    Dernier message: 17/03/2008, 03h46
  3. Image dans ressource non trouvée depuis une dll
    Par WebPac dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 17/08/2007, 15h10
  4. Fichiers jar non trouvés
    Par Mister Nono dans le forum Langage
    Réponses: 14
    Dernier message: 26/07/2007, 16h41
  5. fichier properties non trouvé
    Par kifouillou dans le forum Langage
    Réponses: 42
    Dernier message: 15/02/2007, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo