J’ai une listbox qui affiche les mots cls tirs d’une base de donne. Avec l’vnement change, je peux afficher l’enregistrement correspondant dans ma fentre.
Toutefois, avant d’afficher le nouvel enregistrement, j’aimerais sauvegarder l’ancien mais je n’ai pas trouv d’vnement qui pourrait tre dclench par le changement de valeur de listindex par exemple.
Remarquez que j’obtiens le mme rsultat en mmorisant les valeurs lors l’vnement textchange des editfield et en allumant un lampion boolen s’il y a eu des modifications.
Je pourrais toujours ajouter un bouton Enregistrer, mais l’utilisateur bta - moi en l’occurence - oublierait de l’utiliser 1 fois sur 6 et perdrait ses modifications.
N’empche, il devrait y avoir une manire plus lgante de procder.
Gilles Rioux
[quote=130683:@Gilles Rioux]J’ai une listbox qui affiche les mots clés tirés d’une base de donnée. Avec l’événement change, je peux afficher l’enregistrement correspondant dans ma fenêtre.
Toutefois, avant d’afficher le nouvel enregistrement, j’aimerais sauvegarder l’ancien mais je n’ai pas trouvé d’événement qui pourrait être déclenché par le changement de valeur de listindex par exemple.
Remarquez que j’obtiens le même résultat en mémorisant les valeurs lors l’événement textchange des editfield et en allumant un lampion booléen s’il y a eu des modifications.
Je pourrais toujours ajouter un bouton «Enregistrer», mais l’utilisateur bêta - moi en l’occurence - oublierait de l’utiliser 1 fois sur 6 et perdrait ses modifications.
N’empêche, il devrait y avoir une manière plus élégante de procéder.
Gilles Rioux[/quote]
Comment changez-vous le contenu des cellules de la listbox ? C’est là que vous avez une chance de sauvegarder le contenu de la listbox, avant de le changer.
Mais je ne comprend pas que vous ayez un problème avec Change, qui indique smplement un changement de sélection, et non de contenu. L’équivalent de TextField.TextChange est plutôt ListBox.CellTextChange().
Me suis mal exprim. Je n’ai pas de problme avec change.
Comme je n’dite pas le texte de ma listbox, listbox.celltextchange() ne m’aide pas.
Dans l’vnement change, j’ai
rs = DB.sqlselect("select * from table where cle = '" + listbox.text + "'")
//suivi de plusieurs
champx.text = rs.field("champx").stringvalue
champy.text = rs.field("champy").stringvalue
etc
et a fonctionne trs bien.
Le problme, c’est que champx contient dj le texte de l’enregistrement prcdent que je voudrais sauver avant d’afficher les nouvelles informations.
Pourquoi pas créer Sauvechampx et Sauvechampy comme string properties, puis :
rs = DB.sqlselect("select * from table where cle = '" + listbox.text + "'")
//suivi de plusieurs
SauveChampx = champx.text
champx.text = rs.field("champx").stringvalue
Sauvechampy = champy.text
champy.text = rs.field("champy").stringvalue
Rien ne vous empêche dans la foulée de sauvegarder Sauvechampx et Sauvechampy dans la base de données, si c’est ce que vous voulez faire.