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

Composants FMX Delphi Discussion :

Attribuer une valeur à un bouton dynamique


Sujet :

Composants FMX Delphi

  1. #1
    Candidat au Club
    Homme Profil pro
    autre
    Inscrit en
    Avril 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Avril 2021
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Attribuer une valeur à un bouton dynamique
    Bonjour ;
    J'ai crée un Button dynamique et je veux on click qu'il soit attribuer automatiquement a ligne concerne

    Merci d'avance


    Exemple btn1 = ID num 1
    btn2 = ID num 2
    ex...

    Voila mon code du button dynamique
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    try
        UniQuery1.First;
        Layout14.BeginUpdate;
        for var i := 1 to T do
        begin
          Rec1 := TRectangle.Create(self);
          btn := TSpeedButton.Create(self);
     
          btn.Name := 'btn' + i.ToString;
     
          btn.OnClick := btnClick;
     
          // Edtimage.Bitmap.LoadFromFile('G:\Projet Delphi\Login\image\invoices-icon-6.png');
          btn.Parent := Rec1;
          btn.Align := TAlignLayout.Client;
          Rec1.Height := 70;
          Rec1.Margins.Left := 0;
          Rec1.Margins.Right := 0;
          Rec1.Margins.Top := 0;
          Rec1.Margins.Bottom := 5;
          Rec1.Parent := Layout14;
          UniQuery1.Next;
          begin
            if Odd(i) then
            begin
              Rec1.Fill.Color := talphacolors.Silver;
            end
            else
              Rec1.Fill.Color := talphacolors.White;
          end;
          Rec1.Align := TAlignLayout.MostTop;
        end;
     
      finally
        Layout14.EndUpdate;
      end;
     
     
    procedure TFrame2.btnClick(Sender: TObject);
     
    BEGIN
      UniQuery1.First;
      // T := UniQuery1.RecordCount;
      begin
        if btn.Name = 'btn' + UniQuery1.FieldByName('ID').AsString then
        begin
          showmessage (UniQuery1.FieldByName('ID').Value);
        end;
      end;
     
    END;

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour
    Solution "facile" : utiliser le tag ou tagstring du TButton
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Candidat au Club
    Homme Profil pro
    autre
    Inscrit en
    Avril 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Avril 2021
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Merci pour votre réponse , pouvez vous me donner un exemple sur le code ?


    Citation Envoyé par SergioMaster Voir le message
    Bonjour
    Solution "facile" : utiliser le tag ou tagstring du TButton

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    le mieux c'est encore de dériver le type TButton

    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
     
    type
      TMonBouton = class(TSpeedButton)
      // tout ce dont j'ai besoin pour gérer le click
        XXX:XXXX;
       //
        procedure Click; override;
      end;
     
    procedure TMonBouton.Click;
    begin
      ZZZZZZZZ;
    end,
     
    ...
     
    begin
    ...
       btn := TMonBouton.Create(self);
       btn.XXXX := XXXX;
    ...
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Candidat au Club
    Homme Profil pro
    autre
    Inscrit en
    Avril 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Avril 2021
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Je vous remercie pour votre réponse , mais elle est pas claire pour moi vu que je suis un peux nouveau dans ce domaine ; si je reçois pas un exemples dans mon code je serai perdu lol

    Citation Envoyé par Paul TOTH Voir le message
    le mieux c'est encore de dériver le type TButton

    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
     
    type
      TMonBouton = class(TSpeedButton)
      // tout ce dont j'ai besoin pour gérer le click
        XXX:XXXX;
       //
        procedure Click; override;
      end;
     
    procedure TMonBouton.Click;
    begin
      ZZZZZZZZ;
    end,
     
    ...
     
    begin
    ...
       btn := TMonBouton.Create(self);
       btn.XXXX := XXXX;
    ...

  6. #6
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    ce n'est pas comme cela qu'on apprend...reste à savoir si le but est d'apprendre ou pas
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Limonoss Voir le message
    Merci pour votre réponse , pouvez vous me donner un exemple sur le code ?
    à partir de votre code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      btn.Name := 'btn' + i.ToString;
          btn.tag:=i;  // ou autre valeur entière
          btn.tagstring:='un texte comme la valeur de la clé';
    // il existe aussi btn.TagObject pour assigné un objet
          btn.OnClick := btnClick;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  8. #8
    Candidat au Club
    Homme Profil pro
    autre
    Inscrit en
    Avril 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Avril 2021
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Merci cette solutions est efficace , merci encore une fois .

    Citation Envoyé par SergioMaster Voir le message
    à partir de votre code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      btn.Name := 'btn' + i.ToString;
          btn.tag:=i;  // ou autre valeur entière
          btn.tagstring:='un texte comme la valeur de la clé';
    // il existe aussi btn.TagObject pour assigné un objet
          btn.OnClick := btnClick;

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

Discussions similaires

  1. Attribuer une valeur au champ d'un formulaire
    Par Daniel MOREAU dans le forum Access
    Réponses: 2
    Dernier message: 03/10/2006, 17h18
  2. Réponses: 9
    Dernier message: 08/08/2006, 09h42
  3. attribuer une valeur à un checkbox
    Par monsurf dans le forum Access
    Réponses: 1
    Dernier message: 03/05/2006, 22h29
  4. impossible d'attribuer une valeur a un objet
    Par el_quincho dans le forum Access
    Réponses: 2
    Dernier message: 10/01/2006, 11h18
  5. [C#] Attribuer une valeur a une cellule d'un DataGrid
    Par linuxludo dans le forum Windows Forms
    Réponses: 16
    Dernier message: 19/11/2005, 17h42

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