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 :

problème dans l'incrémentation


Sujet :

Langage Delphi

  1. #1
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut problème dans l'incrémentation
    coucou tout le monde,

    ma procédure suivante et cencée renvoyer les balises [g] et [/g] autour du texte selectionné jusque la tout va bien mais la suite et plus ardue. En effet au premier clic elle doit renvoyer [g] et au deuxieme clic elle renvoie [/g], pour cela j'utilise l'incrémentation d'une varibale notée ici "o"! mais il y a plusieur erreurs...

    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
    20
    var o : integer;
    begin
    if Memo3.SelText <> ''  then
    Memo3.SelText := '[g]' + Memo3.SelText + '[/g]'
    else
    o := 1;
            begin
     
            if o mod 2 <> 0   then
              begin
              Memo3.SelText := Memo3.SelText + '[g]';
              o := o + 1;
              end
            else
              begin
              Memo3.SelText := Memo3.SelText + '[/g]';
              o := o + 1;
              end;
            end;
    end;

    Erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [Conseil] Unit1.pas(276): La valeur affectée à 'o' n'est jamais utilisée
    [Conseil] Unit1.pas(277): La valeur affectée à 'o' n'est jamais utilisée
    [Avertissement] Unit1.pas(268): La variable 'o' n'est peut-être pas initialisée
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
    (\_/)
    (O.o)
    (> <)
    This is Bunny. Copy Bunny into your signature to help him on his way to world domination!!
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=

  2. #2
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    il faut mettre ton

    après le begin.

    sinon, Delphi considere cela comme la seule instruction de ton else, et execute inconditionnelement le bloc suivant Begin... end...

    Les avertissement sont normaux vu le codes
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  3. #3
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            begin
            o := 1;
            if o mod 2 <> 0   then
            begin
            Memo3.SelText := Memo3.SelText + '[g]';
            o := o + 1;
            end
            else
            begin
            Memo3.SelText := Memo3.SelText + '[/g]';
            o := o + 1;
            end;
            end;
    ça ne change pas vraiment vu que la valeur n'est jamais utilisée une fois de plus... ds ce cas jai une suite de [g]
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
    (\_/)
    (O.o)
    (> <)
    This is Bunny. Copy Bunny into your signature to help him on his way to world domination!!
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=

  4. #4
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Je n'ai pas potassé ton code afin d'y comprendre l'algorithme.
    ce que j'ai vu et supposé par rapport à ton écriture et ton indentation, c'était le probleme de l'affectation de ta var. o.

    Ce qui change tout au niveau du code !

    C'est purement syntaxique à ce niveau.
    l'avertissement a du disparaitre, par contre le compilo doit rester avec le 'non utilisé'
    -> normal, tu affectes o, mais tu ne l'utilises nul par après ...

    Mais après une rapide visu, mettre 'o' à 1 et tester si son modulo vaut 0, ... à mon avis il y a un probleme à ce niveau aussi...

    Petite remarque, attention, 'o' est une variable locale et est ré-inialisé a chaque appel de ta fonction...

    et j'ai pas tout compris ce que tu voulais faire.
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  5. #5
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    moi a votre place je ferais sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var  PremierClick : Boolean; 
    begin 
     if Memo3.SelText <> ''  then 
        Memo3.SelText := '[g]' + Memo3.SelText + '[/g]' 
     else 
       begin
         if PremierClick Then  
           Memo3.SelText := Memo3.SelText + '[g]'
           else
           Memo3.SelText := Memo3.SelText + '[/g]':
     
     PremierClick := Not PremierClick ; 
    end;
    la variable PremierClick
    il faut la Déclarer a l'extérieur de la procédure en privé au public

  6. #6
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    niquel, cest une autre façon et cest parfait !! merci beaucoup . . .
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
    (\_/)
    (O.o)
    (> <)
    This is Bunny. Copy Bunny into your signature to help him on his way to world domination!!
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=

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

Discussions similaires

  1. Problème dans la déclaration de Winmain
    Par lvdnono dans le forum DirectX
    Réponses: 3
    Dernier message: 29/05/2004, 13h38
  2. problème dans l'hebergement
    Par Redouane dans le forum ASP
    Réponses: 9
    Dernier message: 31/12/2003, 23h34
  3. Quel est le problème dans ce code ?
    Par Luther13 dans le forum C
    Réponses: 12
    Dernier message: 26/08/2003, 16h09
  4. Problème dans analisys Manager
    Par ien_ien23 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/07/2003, 14h38
  5. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02

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