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 :

[D7] Treeview - Gérer l'édition


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut [D7] Treeview - Gérer l'édition
    Bonjour à tous,

    Je charge un treeview depuis une base, et j'aimerais afficher,dans le texte du noeud, 2 informations (le libellé et l'id).
    Seulement, j'aimerais que lors de l'édition, il n'y ait que le libellé, pour le changer.

    Par exemple, mes noeuds, lors de la visalisation, affichent: "Chaise (12)".
    Et lorsque l'on veut éditer le texte, il n'y ait que: "Chaise", dans la zonne de saisie.
    Et une fois qu'on a validé (Chaises, par exemple), il réaffiche l'id... "Chaises (12)".

    Est ce que c'est possible ?

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2002
    Messages : 144
    Par défaut
    Je t'insiterais à utiliser la virtualtreeview qui permet enormement de choses:

    http://www.soft-gems.net/VirtualTreeview/

    Via ce composant tu pourras afficher plusieurs colonnes, en editer qu'une seule... etc...

  3. #3
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Bonjour Medgir

    Sympa ton controle, mais je le met de coté pour une prochaine fois.
    En effet, j'aimerais continuer à utiliser mon treeview standard... Le mien est trop implémenté et j'aimerais garder une certaine portabilité sur cette application.

    Est ce que c'est possible, donc ?

    Je pensait charger le libellé lors de l'édition, mais quand je fait:
    node.texte := 'Test';
    dans le onEditing, il me le change à la fin de l'édition, pas avant.

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Salut,
    J'aime bien tes challenges à toi ...
    J'ai trouvé un truc mais j'avoue ne pas avoir recherché toutes les possibilités ... Donc, il y a peut-être plus "soft" :
    C'est une petite proc appelée dans l'évènement OnEditing du treeview qui change le texte du noeud au moment de l'édition :

    // Modification du text de l'edit d'un noeud :
    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
    procedure TForm1.NodeChangeText(aText : String);
    var
      i : integer;
      aHwnd: THandle;
    begin
      aHwnd := TreeView_GetEditControl(TreeView1.Handle);
      for i := 1 to Length(aText) do
        PostMessage(aHwnd, WM_CHAR, ord(aText[i]),0);
    end;
     
    // Appel de la proc NodeChangeText
    procedure TForm1.TreeView1Editing(Sender: TObject; Node: TTreeNode;
      var AllowEdit: Boolean);
    begin
      NodeChangeText('Mon texte');
    end;
    Je pense que ça répond à ton besoin non ?
    A+
    Eb.

  5. #5
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Bonjour ebastien,

    Toujours au rendez vous.

    Comme d'habitude,ta solution ressemble bien à ce que je veux,
    seulement, comme d'habitude, je n'arrive pas à la faire marcher,hi.

    C'est à: TreeView_GetEditControl que ca bloque...
    C'est quelle bibliothèque ?

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    T'as vu, j'ai fait un effort ! pas d'héritage de TcustomTreeview
    Tu ajoutes l'unité CommCtrl et ça devrait marcher ...
    (désolé de ne pas l'avoir précisé !)
    Eb.

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

Discussions similaires

  1. [MySQL] Gérer des éditions
    Par asirier dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/01/2014, 11h07
  2. Réponses: 4
    Dernier message: 01/08/2009, 17h44
  3. Réponses: 2
    Dernier message: 23/06/2009, 14h51
  4. Gérer plusieurs polices dans un Treeview
    Par Delphi-ne dans le forum Delphi
    Réponses: 2
    Dernier message: 08/11/2006, 09h46
  5. [Swing][JTable]Gérer l'édition
    Par Baptiste Wicht dans le forum Composants
    Réponses: 28
    Dernier message: 10/05/2006, 08h32

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