none
ENREGISTRER PARAMETRE APPLICATION ET UTILISATEUR RRS feed

  • Question

  • Bonjour,
    projet C# WPF visual C# express edition



    j ai lu  dans les descriptions des librairies de MSDN  que pour enregistrer des paramètres utilisateur émanent de ControlPerso importé dans une solution il faut passer par cette espace de nom ,enfin si j ai bien compris !:


    System .Configuration .

    IPersistComponentSettings

     

    mais j' y arrive pas :( 


    est-ce  codé dans la solution qui a crée le  ControlPerso  ou dans la solution ou j' utilise ce control

    comment je dois procédé  ?


    merci :)

    jeudi 4 février 2010 00:04

Réponses

  • Bonjour Dragonix,

    Ok, je pense avoir compris.

    Je n'aurai pas le temps de tester ça aujourd'hui, mais je peux te dire ce que j'aurais essayé de faire.
    Dans ton UserControl, tu as des paramètres.
    Je serais parti du principe que ces paramètres, je les lis à partir du fichier de config de l'application.
    Sauf que dans ce UserControl, je n'aurais fait que les lire, et l'application principale, elle, aurait le pouvoir de les écraser par d'autres valeurs en fonction des choix de l'utilisateur.

    Pour les lire ou les écrire dans ce fichier, c'est très simple :
    http://www.ajaxline.com/node/258

    Ensuite, dans mon application pricipale, j'aurai stocké les préférences de chacun des utilisateurs dans la partie userSettings du fichier de config, donc je les aurai écrites comme indiqué précédemment.

    Si tout se passe bien comme je l'espère, lorsque ton UserControl essaie d'accéder aux paramètres, il va les chercher dans le fichier de config, fichier que tu auras préalablement renseigné avec des valeurs par défaut, valeurs qui d'ailleurs auront pu être écrasées par l'utilisateur au cours de l'utilisation de l'application.

    Un thread du forum américain parle de l'utilisation du fichier de config, le problème de base ne correspond pas, mais ensuite, ils développent sur comment marchent les fichiers de config, et tu pourras y trouver des infos qui j'espère te seront utiles :
    http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/ef97399d-9af1-4eda-91cc-9c1ccf2f712b/

    Le fichier de config de l'application est local et chaque installation de l'application a le sien, donc chacun de tes utilisateurs peut stockr ses préférences dedans.

    Cordialement,

    Thomas
    Thomas Aimonetti - C# - Sharplog Engineering - http://www.sharplog.fr
    • Marqué comme réponse Dragonix vendredi 5 février 2010 00:58
    jeudi 4 février 2010 13:33
  • heu javais pas vu la réponse
    merci  Thomas :)

    oui j avais trouvé un code similaire cette nuit pour lire et écrire dans le paramètres application, mais ca c que pour les paramètre d' application que ca s' adresse en fait ,non.


    bon après re-éssai en ayant défini des paramètres utilisateur dans "projet/paramètre de configuration/paramètre"  de ma solution ou j' ai crée mon controlPerso  ca fonctionne dans mon application qui utilise ce control, sans rien faire de plus . jcomprend pas j ai du me planter la premiere fois.

    du coup  l' espace de nom System.configuration.IPersistComponentSettings , c' est  que pour les paramètres d' application  des composants et pas ceux des utilisateurs qu' on l' utilise ?

    ce qu' on applle paramètre d' application c' est par exemple des variables qui stockent des paramètres de fonctionnement pour l' application? et qui ne doivent pas directement être accesibles par l' utilisateur sauf dans le cas ou on met en place une classe wrapper pour modifier par exemple le type de connection d' une application ?

    jsais pas si je m' embrouille pas !! :)

    et une dernière ptite question : quand on définit une variable de paramètre utilisateur de type control Textbox,permet elle d' enregistrer toute les propriétés( genre FontFamily,Fontsize)  de ce textbox  a l' intérieur de cette variable ?  ce qui serait interresant   j ' ai essayé ca pas l' air de fonctionner 

    exemple: 
     
    je déclare une variable utilisateur TextboxSetting  de type control.textbox  dans projet/paramètre du projet/paramètre

    et dans le code si je veux enregistrer toutes les valeurs de propriétés ou certaines je fait 

    WpfComposant.Properties.

    Settings.Default.TextBoxSetting.FontFamily = tbEnvoiText.FontFamily ;

    ou si je veux enregistrer toutes les propiétés je fais :

    WpfComposant.Properties.Settings.Default.TextBoxSetting= tbEnvoiText ;

    WpfComposant.Properties.
    Settings.Default.Save();

    j ' ai essayé ca pas l' air de fonctionner même si  l' écriture semble correct par le correcteur  Intelligence

    hum dommage

    bon allez stop
     

     
    • Marqué comme réponse Dragonix jeudi 4 février 2010 15:24
    • Non marqué comme réponse Dragonix jeudi 4 février 2010 16:42
    • Marqué comme réponse Dragonix vendredi 5 février 2010 00:58
    jeudi 4 février 2010 14:19

Toutes les réponses

  • Bonjour Dragonix,

    Je ne comprends pas vraiment ce que tu veux faire.
    Peux-tu nous détailler plus ce que tu souhaites faire et ta problématique ?

    Aussi, tu parles de descriptions MSDN, peux-tu nous donner les références ?

    Cordialement,

    Thomas
    Thomas Aimonetti - C# - Sharplog Engineering - http://www.sharplog.fr
    jeudi 4 février 2010 09:56
  • ok, et merci
    je veux enregistrer des paramètres d' utilisateur tel que la couleur la police pour les restaurer a la prochaine exécution de l' application
    Donc au début j' avais déclaré des variables de paramètres de configuration utilisateur dans (projet/paramètre du  projet/paramètre)   pour sauvegarder les préférences  de mon UserControl qui ma servi a fabriquer ma dll ,pour pouvoir utiliser ce control dans une solution final de type application pour le fenêtrage.

    mais apparement ca ne fonctionne pas quand j' execute mon application qui utilise ce contrôl. donc après lecture msdn,j ai cru comprendre qu' il fallait l' implémenter dans le Composant lui-même,ce serait le composant lui-même qui créerai son propre wrapper (à me confirmer

    donc pour ce qui est des enregistrements des préférences de paramètre qui sont codé dans ma solution final de dévelloppement ca pose pas de problème je sais faire puisque les valeurs des propriétés des controls hormis les controlPerso (UserControl) sont accesiblent depuis le code alors que ceux de mon ControlPerso ne le sont pas d' ou la problématique d' enregistrer par exemple la couleur de fond de man ControlUtilsateur

    pour les paramètre d' application j ai lu aussi qu' il fallait créer une class wrapper (binding) pour modifier des valeurs directement pendant l' execution (raison variable des paramètres d' application en lecture seulement),donc je verrai ca plus tard ouff!

    pour MSDN :http://msdn.microsoft.com/fr-fr/library/system.configuration.ipersistcomponentsettings.aspx

    System.configuration.
    System.configuration.IPersistComponentSettings  MonInterface  // création  de l' interface
    MonInterface.SaveComponentSettings // ainnsi on accède au methode

    Mais comment on fait pour l' utiliser dans ma class UserControl


    http://msdn.microsoft.com/fr-fr/library/system.configuration.ipersistcomponentsettings_members.aspx

    LoadComponentSettings
    ResetComponentSettings
    SaveComponentSettings

    heu j ai bien essayé de faire ca dans ma classe  UserControl

     


    voila ptète que j ai pas bien compris les descriptions, c plutôt pour sauvegarder des paramètres d' appplication d' un Composant et pas des paramètres utilisateurs mais ca revient au même non?
    donc pour résumer et simplifier :

    imaginons que j' ai déposé un UserControl importé d' une dll qui permet de changer le fond de ce UsercControl dans une solution d' application et que je veux pouvoir enregistrer ce paramètre utilisateur du UserControl
    voila la question :)



    mreci

    jeudi 4 février 2010 12:35
  • Bonjour Dragonix,

    Ok, je pense avoir compris.

    Je n'aurai pas le temps de tester ça aujourd'hui, mais je peux te dire ce que j'aurais essayé de faire.
    Dans ton UserControl, tu as des paramètres.
    Je serais parti du principe que ces paramètres, je les lis à partir du fichier de config de l'application.
    Sauf que dans ce UserControl, je n'aurais fait que les lire, et l'application principale, elle, aurait le pouvoir de les écraser par d'autres valeurs en fonction des choix de l'utilisateur.

    Pour les lire ou les écrire dans ce fichier, c'est très simple :
    http://www.ajaxline.com/node/258

    Ensuite, dans mon application pricipale, j'aurai stocké les préférences de chacun des utilisateurs dans la partie userSettings du fichier de config, donc je les aurai écrites comme indiqué précédemment.

    Si tout se passe bien comme je l'espère, lorsque ton UserControl essaie d'accéder aux paramètres, il va les chercher dans le fichier de config, fichier que tu auras préalablement renseigné avec des valeurs par défaut, valeurs qui d'ailleurs auront pu être écrasées par l'utilisateur au cours de l'utilisation de l'application.

    Un thread du forum américain parle de l'utilisation du fichier de config, le problème de base ne correspond pas, mais ensuite, ils développent sur comment marchent les fichiers de config, et tu pourras y trouver des infos qui j'espère te seront utiles :
    http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/ef97399d-9af1-4eda-91cc-9c1ccf2f712b/

    Le fichier de config de l'application est local et chaque installation de l'application a le sien, donc chacun de tes utilisateurs peut stockr ses préférences dedans.

    Cordialement,

    Thomas
    Thomas Aimonetti - C# - Sharplog Engineering - http://www.sharplog.fr
    • Marqué comme réponse Dragonix vendredi 5 février 2010 00:58
    jeudi 4 février 2010 13:33
  • heu javais pas vu la réponse
    merci  Thomas :)

    oui j avais trouvé un code similaire cette nuit pour lire et écrire dans le paramètres application, mais ca c que pour les paramètre d' application que ca s' adresse en fait ,non.


    bon après re-éssai en ayant défini des paramètres utilisateur dans "projet/paramètre de configuration/paramètre"  de ma solution ou j' ai crée mon controlPerso  ca fonctionne dans mon application qui utilise ce control, sans rien faire de plus . jcomprend pas j ai du me planter la premiere fois.

    du coup  l' espace de nom System.configuration.IPersistComponentSettings , c' est  que pour les paramètres d' application  des composants et pas ceux des utilisateurs qu' on l' utilise ?

    ce qu' on applle paramètre d' application c' est par exemple des variables qui stockent des paramètres de fonctionnement pour l' application? et qui ne doivent pas directement être accesibles par l' utilisateur sauf dans le cas ou on met en place une classe wrapper pour modifier par exemple le type de connection d' une application ?

    jsais pas si je m' embrouille pas !! :)

    et une dernière ptite question : quand on définit une variable de paramètre utilisateur de type control Textbox,permet elle d' enregistrer toute les propriétés( genre FontFamily,Fontsize)  de ce textbox  a l' intérieur de cette variable ?  ce qui serait interresant   j ' ai essayé ca pas l' air de fonctionner 

    exemple: 
     
    je déclare une variable utilisateur TextboxSetting  de type control.textbox  dans projet/paramètre du projet/paramètre

    et dans le code si je veux enregistrer toutes les valeurs de propriétés ou certaines je fait 

    WpfComposant.Properties.

    Settings.Default.TextBoxSetting.FontFamily = tbEnvoiText.FontFamily ;

    ou si je veux enregistrer toutes les propiétés je fais :

    WpfComposant.Properties.Settings.Default.TextBoxSetting= tbEnvoiText ;

    WpfComposant.Properties.
    Settings.Default.Save();

    j ' ai essayé ca pas l' air de fonctionner même si  l' écriture semble correct par le correcteur  Intelligence

    hum dommage

    bon allez stop
     

     
    • Marqué comme réponse Dragonix jeudi 4 février 2010 15:24
    • Non marqué comme réponse Dragonix jeudi 4 février 2010 16:42
    • Marqué comme réponse Dragonix vendredi 5 février 2010 00:58
    jeudi 4 février 2010 14:19