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

C++Builder Discussion :

Accès à un eDit


Sujet :

C++Builder

  1. #1
    Membre actif
    Accès à un eDit
    Bonjour à tous.
    Voilà un morceau du fichier cpp :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void __fastcall TfDuree::Ajuster1Click(TObject *Sender)
    {
    	UnicodeString usDuree;
    	int iHeures, iMin, iSec;
    	eK->Visible = true;
    	double dK ; //= 0.75;
    	dK = eK->Text.ToDouble();


    Lors de l'éditeur du programme, j'ai écrit un nombre dans ce TEdit eK.
    Je voudrais écrire un autre nombre dans ce TEdit.
    Dans les faits les 3 dernières opérations sont réalisées sans me laisser la possibilité de'écrire quoi que se soit dans le TEdit.

    Quelqu'un a-t-il idée de ce que je dois modifier ?

    Merci
    Gilbert PASQUALINI

  2. #2
    Membre chevronné
    Salut
    tu est obligé de passer par une variable intermédiaire de type UnicodeString car tu utilise la méthode Read de la propriété Text de ton editBox
    donc je te propose la modification suivante
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void __fastcall TfDuree::Ajuster1Click(TObject *Sender)
    {
    	UnicodeString usDuree;
    	int iHeures, iMin, iSec;
    	eK->Visible = true;
            usDuree=EK->Text   
    	double dK=usDuree.ToDouble();


    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Membre actif
    Citation Envoyé par Pasqualini Voir le message
    J'ai essayé.
    Je rencontre la même difficulté.
    Je ne peux pas modifier le contenu du TMaskEdit "eK".
    Gilbert PASQUALINI

  4. #4
    Membre chevronné
    UNsicode
    Hello
    le composant TMaskEdit de même que TEdit sont des descendant de TCustomEdit
    par conséquent le comportement de la propriété texte est identique
    la lecture de la propriété Text d'un descendant de TCustomEdit te retourne une valeur en mode lecture seule donc non modifiable
    si tu veux pourvoir agir sur la valeur de retour de la propriété tu est obligé de passer par une variable intermédiaire

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    double Value;
    UnicodeString Tmp=ed->Text; //assignation de la valeur de la propriété Text dans une variable de Type UnicodeString
    try
    {
      Value=Tmp.ToDouble(); //Transformation en double
    }
    catch (EconvertError &E)
    {
     // Traitement de l'exception
    }

    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  5. #5
    Membre actif
    Le problème était qu'il n'était pas possible de modifier le contenu du TMaskEdit.
    J'ai résolu le problème en ajoutant une fiche au logiciel.
    Dans cette fiche je peux modifier la valeur du double "dK".

    Il me semble avoir utiliser dans le passé une procédure permettant pendant l'"exécution du programme une valeur.
    Cette procédure faisait apparaître une fenêtre avec la valeur actuelle et, je crois, une nouvelle valeur qu'il était possible de définir.

    Avez vous une idée concernant cette procédure ?
    Gilbert PASQUALINI

  6. #6
    Membre chevronné
    Salut
    ta demande n'est pas très claire !!
    poste ton code stp
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  7. #7
    Membre actif
    J'ai essayé :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void __fastcall TfDuree::Ajuster1Click(TObject *Sender)
    {
    	UnicodeString usDuree;
    	int iHeures, iMin, iSec;
    	eK->Visible = true;
            usDuree=EK->Text   
    	double dK=usDuree.ToDouble();

    Mais comme je l'ai dit, il était impossible de modifier le contenu de l'Edit eK.

    Ma dernière question concernait l'existence d'une procédure permettant, durant le "Runtime", de modifier une valeur sans l'utilisation d'un TEdit.
    Gilbert PASQUALINI

  8. #8
    Membre chevronné
    Hello
    de quoi parle tu exactement Un TEdit ou un TMaskEdit?
    dans le second cas écrire dans un TMaskEdit est un peu plus laborieux
    tu dois utiliser le mask que tu utilise avec la valeur que tu désire inscrire


    poste le contenu de ton mask ainsi que la valeur que tu désire obtenir dans le TMaskEdit
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  9. #9
    Membre chevronné
    Hello,
    un exemple d'utilisation d'une TMaskeEdit utilisée pour la saisie d'une adresse Ip
    le masque qui sera utilisé est de 4 groupes de 3 éléments numériques séparées d'un point "999.999.999.999". valeur introduite dans l'éditeur de Masque.
    MaskEdit à 3 propriété accessibles en mode RW

    EditMask permet la mise en place d'un masque dans mon cas 999.999.999.999
    EditText Permet de lire, respectivement d'écrire dans la propriété affiche la valeur formatée avec EditMask
    Text Permet de lire, respectivement d'écrire dans la propriété affiche la valeur non formatée

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    UnicodeString myMask,myValue;
    myMask=MaskEdit2->EditMask;
    myValue=MaskEdit2->EditText;
     
    MaskEdit2->Clear(); // on efface le contenu du MaskEdit2
    MaskEdit2->EditMask=L"";// on efface le masque
    MaskEdit2->EditMask=myMask; // on place le masque
    myValue=FormatMaskText(myMask,myValue); // formatage offline de la valeur
    MaskEdit2->EditText=myValue; // écriture du maskEdit


    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  10. #10
    Membre actif
    Je vous remercie d'essayer de me dépanner.
    problème était d’accéder au TMaskEdit pour en modifier le contenu.
    Quand j'écris :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void __fastcall TfDuree::Ajuster1Click(TObject *Sender)
    {
    	UnicodeString usDuree;
    	int iHeures, iMin, iSec;
    	eK->Visible = true;
    	double dK ; //= 0.75;
    	dK = eK->Text.ToDouble();

    Le "eK" n’apparaît pas et il est donc impossible d'en modifier le contenu.
    Comme je crois l'avoir dit, j'ai résolu le problème d'une autre façon.
    Gilbert PASQUALINI

  11. #11
    Membre chevronné
    Je constate que tu t'obstine a ne pas m'écouter !!!!!

    dK = eK->Text.ToDouble();
    est impossible
    on ne peut pas modifier une propeerty en lecture seule car '="
    je t'ai proposé une solution mais bon j’arrête la.
    je n'ai plus envie de perdre mon temps avec toi.
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  12. #12
    Membre actif
    Je ne comprends pas votre irritation.
    Je crois sans doute m'être mal exprimé.
    Si je ne peux pas modifier le contenu du TMaskEdit, c'est parce qu'il n'est pas apparent après eK->Visible = true.
    Quand j'avais mis, lors de la compilation, la propriété "Visible" de ce TMaskEdit à true, il apparaissait au lancement du logiciel.
    Je pouvais alors en modifier le contenu comme bon me semblait.
    Gilbert PASQUALINI