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 :

Accéder aux propriétés d'un objet créé au runtime


Sujet :

Delphi

  1. #1
    Membre habitué
    Homme Profil pro
    Responsable associatif
    Inscrit en
    Octobre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Responsable associatif

    Informations forums :
    Inscription : Octobre 2005
    Messages : 228
    Points : 162
    Points
    162
    Par défaut Accéder aux propriétés d'un objet créé au runtime
    bonjour,

    j'ai un report (qr) dans lequel je créé un certain nombre de QRLabel à l'exécution.
    Au moment de l'impression, j'ai besoin de modifier la propriété alignment de certains des Qrlabel, en fonction de la valeur d'un champ d'une table.

    Je n'arrive pas à accéder à cette propriété. Pourtant ça doit être possible non ?

    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
     
    // par exemple là je crée mon Qrlabel
       with TQRLabel.Create(Self) do
        begin
          Parent := detailband1;
          alignment := tarightjustify;
          left := 0;
        end;
     
    // avant l'impression :
    procedure Tqetiq.DetailBand1BeforePrint(Sender: TQRCustomBand;
      var PrintBand: Boolean);
    var
      i: integer;
    begin
     for i:=0 to quickrep1.ControlCount-1 do
     begin
       if controls[i] is TQRLABEL then controls[i].Alignment := tacenter;
     end;  
     // ça marche pas : pas moyen d'accéder à cette propriété
    end;
    Comment faire ?
    Merci de votre aide

  2. #2
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 69
    Points : 76
    Points
    76
    Par défaut
    il faut transtyper controls[i] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // avant l'impression :
    procedure Tqetiq.DetailBand1BeforePrint(Sender: TQRCustomBand;
      var PrintBand: Boolean);
    var
      i: integer;
    begin
     for i:=0 to quickrep1.ControlCount-1 do
     begin
       if controls[i] is TQRLABEL then TQRLABEL(controls[i]).Alignment := tacenter;
     end;  
     // ça marche pas : pas moyen d'accéder à cette propriété
    end;
    Bruno

  3. #3
    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
    Au lieu de parcourir tous les contrôlesde ta fiche, tu ferais mieux de les mettre dans un TObjectList
    Ce sera plus simple pour les trouver et les compter
    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

  4. #4
    Membre habitué
    Homme Profil pro
    Responsable associatif
    Inscrit en
    Octobre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Responsable associatif

    Informations forums :
    Inscription : Octobre 2005
    Messages : 228
    Points : 162
    Points
    162
    Par défaut
    merci de vos réponses !
    Je vais essayer de me débrouiller.

    Le TObjectList ça me parait séduisant, mais comment fait-on pour ajouter le composant au moment de sa création ?
    Et pour accéder aux propriétés, la synatxe is ?

    Je vais chercher, mais Pedro, si tu peux m'éclairer, merci d'avance...

  5. #5
    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
    Citation Envoyé par zarbouine
    Le TObjectList ça me parait séduisant, mais comment fait-on pour ajouter le composant au moment de sa création ?
    t'aurais permis de trouver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    t := TQRLabel.Create(Self);
    with t do
    begin
      Parent := detailband1;
      alignment := tarightjustify;
      left := 0;
    end;
    MonObjectList.add(t);
    Citation Envoyé par zarbouine
    Et pour accéder aux propriétés, la synatxe is ?
    t'aurais permis de trouver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for i := 0 to MonObjectList.Count - 1 do
      TQRLabel(MonObjectList.Items[i]).Alignment := taCenter;
    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

  6. #6
    Membre habitué
    Homme Profil pro
    Responsable associatif
    Inscrit en
    Octobre 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Responsable associatif

    Informations forums :
    Inscription : Octobre 2005
    Messages : 228
    Points : 162
    Points
    162
    Par défaut
    Merci beaucoup Pedro !

    j'avais cherché dans l'aide mais pas trouvé des explications aussi claires.
    (en fait j'avais pas compris, maintenant oui )
    je progresse : youpee
    Encore merci

  7. #7
    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
    Citation Envoyé par zarbouine
    Merci beaucoup Pedro !

    j'avais cherché dans l'aide mais pas trouvé des explications aussi claires.
    (en fait j'avais pas compris, maintenant oui )
    je progresse : youpee
    Encore merci
    Mais avec plaisir
    Si ton problème est résolu, n'oublie pas de cliquer sur
    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

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/10/2010, 18h26
  2. Réponses: 1
    Dernier message: 02/11/2009, 18h46
  3. Comment accéder aux propriétés d'un objet de la bibliothèque
    Par jpboogie dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 11/02/2009, 10h57
  4. [Smarty] Comment accéder aux propriétés d'un objet dans un objet ?
    Par Tanebisse dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 18/11/2008, 12h36
  5. Réponses: 5
    Dernier message: 23/02/2007, 19h55

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