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

Langage Delphi Discussion :

Enregistrer le nouveau ListItem.Caption dans ini


Sujet :

Langage Delphi

  1. #1
    Membre du Club Avatar de ddubois
    Profil pro
    Inscrit en
    Février 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 111
    Points : 47
    Points
    47
    Par défaut Enregistrer le nouveau ListItem.Caption dans ini
    Je modifie le Caption d'un TListItem en double cliquant sur son titre (propriété ReadOnly a False) puis j'enregistre le nouveau caption dans un fichier ini grace a l'evennement OnEdited qui survient uniquement lorsque le titre de l'item a été modifié.
    Hors lorsque j'écrit 'ListItem.Caption' comme valeur de ma clé 'NAME', il enregistre l'ancien caption et non celui modifié !
    Comment lui faire prendre en compte le nouveau Caption ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TForm1.ListView1Edited(Sender: TObject; Item: TListItem;
      var S: string);
    var
     ListItem : TListItem;
    begin
      ListItem := Form1.ListView1.Selected; 
      Form2.EcritINIStr(MaSection,'NAME', ListItem.Caption);//<----ERREUR !
    end;
    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
     
    procedure TForm2.EcritINIStr(Section:String; Cle:String; Chaine:String);
    Var
      FileIni : TIniFile;
    begin
     if not FileExists(ExtractFilePath(Application.ExeName)+'\QF.ini') then begin
      MessageDlg('Fichier de configuration [QF.ini] introuvable !)', mtWarning, [mbOk], 0);
      exit;
     end;
     
      FileIni:= TIniFile.Create(ExtractFilePath(Application.ExeName)+'\QF.ini');
      Screen.Cursor := crHourglass;
      Try
        FileIni.WriteString(Section, Cle, Chaine);
      Finally
        Screen.Cursor := crDefault;
        FileIni.Free;
      End;
    end;
    Merci,

    Denis

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    procedure TForm1.ListView1Edited(Sender: TObject; Item: TListItem;
      var S: string);
    C'est la variable S qui contient la nouvelle valeur.

    A noter également que Item est l'item modifié donc inutile d'aller le chercher avec Selected.

    @+ Claudius.

  3. #3
    Membre du Club Avatar de ddubois
    Profil pro
    Inscrit en
    Février 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 111
    Points : 47
    Points
    47
    Par défaut
    Merci grand moderateur !

  4. #4
    Membre du Club Avatar de ddubois
    Profil pro
    Inscrit en
    Février 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 111
    Points : 47
    Points
    47
    Par défaut
    J'ai parlé trop vite, non resolu
    J'ai un problème sur le nom de la section qui n'affiche rien dans ShowMessage :
    ShowMessage(Infos^.FSection); // vide

    et qui affiche des caracteres aleatoires a la place dans mon fichiers ini

    J'ai teste ailleurs et ca fonctionne bien c'est specifique a cet emplacement

    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
     
    // ************************************************************
    //   On a modifié puis valider le titre d'un item (touche Entrée)
    // ************************************************************
    //Mettre la Propriété 'ReadOnly' du TListView à False;
    procedure TForm1.ListView1Edited(Sender: TObject; Item: TListItem;
      var S: string);
    var
     ListItem : TListItem;
     Infos    : Pinfos;        //Pointeur sur le 'Record'
    begin
      Infos := Pinfos(ListItem.Data);
      Form2.EcritINIStr(Infos^.FSection,'NAME', S); //Nom Section fantaisiste
          ShowMessage(Infos^.FSection); //<-------------ERREUR
    end;
    Merci pour votre aide

    Denis

  5. #5
    Membre du Club Avatar de ddubois
    Profil pro
    Inscrit en
    Février 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 111
    Points : 47
    Points
    47
    Par défaut
    Je viens de trouver !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Infos := Pinfos(Item.Data);
    Tout simplement. cette fois c'est résolu !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 13/02/2014, 18h51
  2. Upload et enregistrement du nom du fichier dans une bdd
    Par johan_barbier dans le forum XMLRAD
    Réponses: 8
    Dernier message: 26/09/2005, 12h02
  3. Réponses: 4
    Dernier message: 29/08/2005, 19h50
  4. Enregistrer un nouveau serveur dans un groupe de serveur ?
    Par pop bob dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/07/2005, 16h18

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