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 :

Problème de changement de couleur d'image


Sujet :

Delphi

  1. #1
    Membre régulier Avatar de jodan33
    Homme Profil pro
    DEveloppeur interoperabilité
    Inscrit en
    Mars 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : DEveloppeur interoperabilité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 95
    Points : 71
    Points
    71
    Par défaut Problème de changement de couleur d'image
    Bonjour,
    j'essaie de changer de couleur sur des reservations de table de resto sur un module tactile, les couleurs sont stockées dans un tableaux à l'aide de pointeurs , je recupére la couleur pour tab occupé , et je souhaite libérer la table et donc la changer de couleur, voir ci dessous:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    procedure TFTA_Main.btncloseClick(Sender: TObject);
     
    var
    new_color,old_color : Tcolor;
    nouveau: integer ;
    objet_id:Integer;
    codresa:double;
    noenreg:integer;
    id_save,i :integer;
    mt_encais,mt_ttc : double;
    etat:integer;
    no_facture,comodif,h_service,serv_actu,serv : string;
     
    begin
     btnopen.Enabled:=false;
     LMDSpeedButton1.Font.Color:=clblack
     //test si montant = zero possiblité de libérer la table
     
      if (mt_encais = 0) and (etat=OCC)  then       // and (etat=OCC)
     
    	//  Récupération des infos de la table
     
    	 MessageDlg('Essai1 Change color', mtWarning, [mbOK], 0);
             letetval.Caption:=StrEtat(PTable((Controls[objet_id] as Timage).Tag)^.etat);
             PTable((Controls[objet_id] as Timage).Tag)^.etat:=nouveau;
     
         //Changer etat table
     
          change_etat(LIB,objet_id,true); // fonction servant a changer d'etat
     
          MessageDlg('Essai4 Change color', mtWarning, [mbOK], 0);
     
          ChangeColor(old_color,new_color,objet_id);// Fonction servant a changer de couleur
     
     //id_save:=i;
     
     
     
        end;



    Voici le message d'erreur: Indice de liste hors limite (93655802)




    Merci , pour votre aide.

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    sur quelle ligne ton programme te génére ce message d'erreur
    le probleme est que plusieur element peuvent produire ce debordement

    en premier lieu l'object_id celui ci doit etre assez facile a verifier
    il ne faut pas qu'il depasse le nombre contenu dans controls

    un petit test pourrait etre facile a mettre en place

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if  (objet_id >-1) and  (objet_id <=Pred(controls.count)) then
    begin
      ...
    end;
    après l'autre risque d'erreur peut provenir de "tag"
    si la longueur de ta table est inférieur a la valeur de tag

    voila pour les plus flagrant
    maintenant je ne sais pas ce que tu fait dans tes fonction

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  3. #3
    Membre régulier Avatar de jodan33
    Homme Profil pro
    DEveloppeur interoperabilité
    Inscrit en
    Mars 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : DEveloppeur interoperabilité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 95
    Points : 71
    Points
    71
    Par défaut
    Salut,
    le probleme avec ce programme c'est que je ne peux pas placer de point de débogage pour vérifier les valeurs il génére une dll , d'ou mes message box pour savoir où il plante exactement.
    Voici le code de change etat:
    #
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    procedure TFTA_Main.change_etat(nouveau: integer;objet_id :integer;maj:boolean);
    var
    new_color,old_color : Tcolor;
     
     
    begin
      case (PTable((Controls[objet_id] as Timage).Tag)^.etat) of
        LIB     : old_color := CL_LIB;
        OCC     : old_color := CL_OCC;
     
      end;
     
     
      case nouveau of
        LIB     : new_color := CL_LIB;
        OCC     : new_color := CL_OCC;
     
      end;
     
      ChangeColor(old_color,new_color,objet_id);
     
      PTable((Controls[objet_id] as Timage).Tag)^.etat:=nouveau;
      MessageDlg('test 3', mtWarning, [mbOK], 0);
     
      if maj=true then
     
        letetval.Caption:=StrEtat(PTable((Controls[objet_id] as Timage).Tag)^.etat);
        MessageDlg('T5', mtWarning, [mbOK], 0);
    end;

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    depuis quand on ne peut plus déboguer une dll ??
    as tu renseigné l'application hôte dans le menu "executer|paramettre"

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  5. #5
    Membre régulier Avatar de jodan33
    Homme Profil pro
    DEveloppeur interoperabilité
    Inscrit en
    Mars 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : DEveloppeur interoperabilité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 95
    Points : 71
    Points
    71
    Par défaut
    oui , c'est fait , si t"as une soluce pour que j'affiche la valeur d 'Objet_id, et de Tag , elle est bienvenue .... merci

  6. #6
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    menu
    voir|Fenêtre de déboguage |point de suivi
    entre la valeur que tu veut suivre

    tu lance delphi par le projet de la dll celle ci lancera automatiquement l'executable hôte ensuite tu fait un déboguage normal

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  7. #7
    Membre régulier Avatar de jodan33
    Homme Profil pro
    DEveloppeur interoperabilité
    Inscrit en
    Mars 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : DEveloppeur interoperabilité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 95
    Points : 71
    Points
    71
    Par défaut
    Salut,
    j'ai essayé mais ça marche pô, je rentre la valeur que je veux suivre mais à coté il y a inscrit processus non accessible ...
    merci , je pense que ces une piste à exploiter malgré tout.

  8. #8
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Le code de ta procédure btnCloseClick est-il complet ?

    Si oui alors la variable objet_id n'est pas initialisée.
    Si non, on ne peut pas t'aider
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

Discussions similaires

  1. [AC-2003] Problème de changement de couleur de text dans un champ
    Par Expensive dans le forum IHM
    Réponses: 2
    Dernier message: 01/11/2012, 16h57
  2. Problème de changement de couleur de cellule
    Par Maady dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 18/11/2010, 23h22
  3. problème de changement de couleur
    Par ChTiRiBi dans le forum Wildfly/JBoss
    Réponses: 0
    Dernier message: 19/04/2010, 13h26
  4. Problême amsn changement d'image perso
    Par sermadiras nicolas dans le forum Ubuntu
    Réponses: 2
    Dernier message: 01/10/2008, 16h40
  5. changement de couleur d'un lien au survol d'une image
    Par arn123 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/02/2006, 00h50

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