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 :

utilisation des TAG


Sujet :

Delphi

  1. #1
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut utilisation des TAG
    Bonsoir à tous,

    Je souhaite pour changer des propriétés identiques sur un ensemble de grilles utiliser la propriété TAG.
    Mais je me heurte à un problème :
    Le code suivant ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Components[5] as TStringGrid).Cells[5,6] := 'coucou';
    Alors que celui-ci fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if Components[i].Tag = 5 then
       (Components[5] as TStringGrid).Cells[5,6] := 'coucou';
    Pourquoi je devrais passer par un IF alors que je sais par avance de quel type d'objet il s'agit ?

    Passer par un IF signifie que je fais une boucle de 1 à 20 (20 grilles) que je met en place un CASE OF et cela m'oblige à écrire les 20 lignes de propriétés.

    Merci à tous

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Question bête: ce ne serait pas plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (Components[i] as TStringGrid).Cells[5,6] := 'coucou';
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  3. #3
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut
    Je me suis trompé avec 5 il faut voir à la place i , mais cela ne fonctionne pas non plus avec la variable.

    Merci

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    C'est bizarre ton problème...
    T'as essayé avec le cast "sauvage":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TStringGrid(Components[i]).Cells[5,6] := 'coucou';
    Citation Envoyé par thierrybatlle
    Le code suivant ne marche pas :
    Que se passe-t-il? Ca ne compile pas? Message d'erreur?
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  5. #5
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut
    Des 2 façons ça déclenche une exception à l'exécution du programme.

    ????

  6. #6
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Citation Envoyé par thierrybatlle
    Des 2 façons ça déclenche une exception à l'exécution du programme.

    ????
    ... et l'exception est ?
    -Slimjoe

  7. #7
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 618
    Points : 222
    Points
    222
    Par défaut
    Le message est :
    EaccessViolation avec le message 'violation d'accès à l'adresse ......

    Merci

  8. #8
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Ton i-ième composant ne doit pas être un TStringGrid

    Il serait peut-être judicieux de vérifier avec l'opérateur is de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if Components[i].Tag = 5 
      then
    if Components[i] is TStringGrid
     then TStringGrid(Components[i]).Cells[5,6] := 'coucou';
    Cordialement
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  9. #9
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    si tu essay de changer la cellule dans un des evenements de tes stringgrids; utlise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if TStringgrid(sender).tag=5 then
    tu peut bien sur utlisé une autre méthode sans utlisé le if
    crée un tableau de TStringgrid et lui affecter les stringgrid que vous avez dans oncreat
    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
    var MesSG:array[1..10] of Tstringgrid;
    procedure Oncreat;
    var  i:integer;
    begin
         for i:=0 to ComponentCount-1 do
          begin
           if Components[i] is TStringGrid then
             begin
              j:=TStringGrid(Components[i]).Tag;
              messt[j]:=TStringGrid(Components[i]);
             end;
          end;
    //attention il faut que le tableau messg a au moins le nbr de stringgrid que tu crée et que tu as bien initialisé leur tag
    end;
    bon dev
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

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

Discussions similaires

  1. [débutant] Utilisation des tags "html:link", etc.
    Par ghohm dans le forum Struts 1
    Réponses: 6
    Dernier message: 30/05/2007, 17h58
  2. Merci d'utiliser des TAGS [Lycos] , [Yahoo], [ifrance], etc
    Par Marc Lussac dans le forum Autres hébergeurs
    Réponses: 0
    Dernier message: 06/03/2007, 16h34
  3. Stuts Layout => utilisation des tags <tabs> et <tab>
    Par spirodeau dans le forum Struts 1
    Réponses: 4
    Dernier message: 26/07/2006, 17h51

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