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 :

lancement programmé de Button1.click


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Points : 72
    Points
    72
    Par défaut lancement programmé de Button1.click
    j'ai un programme avec un bouton sur la Form, type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    showmessage ('bouton appuyé');
    end;
    je voudrais pouvoir, par le programme lui même, sous certaines conditions, lancer la procedure correspondant à ce bouton.
    ce qui revient à appuyer virtuellement sur le bouton.
    comment est ce possible?
    merci.
    Jean Pierre

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Comme ceci:
    Tout simplement.

    @+ Claudius

  3. #3
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Il suffit d'appeler la procédure Click du Button.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage('coucou');
    end;
     
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      Button1.Click;
    end;
    Voilà!
    A+

    [Edit]
    Grilled

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Points : 72
    Points
    72
    Par défaut
    euh...j'ai du rater qque chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    showmessage ('bouton appuyé');
    end;
     
    begin
    Button1.Click;
    end.
    me donne identificateur non déclaré Button1

  5. #5
    Membre confirmé
    Avatar de didier.cabale
    Homme Profil pro
    Conseil - Consultant en systèmes d’information
    Inscrit en
    Août 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d’information
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2004
    Messages : 130
    Points : 522
    Points
    522
    Par défaut
    Citation Envoyé par potili2 Voir le message
    euh...j'ai du rater qque chose
    Oui, pour que Button1 soit accessible, il faut qu'il soit appelé par une méthode (procédure ou fonction d'objet) appartenant à un objet (ici TForm1).
    Or ici rien ne prouve que votre procédure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    begin
    Button1.Click;
    end.
    soit une méthode
    Cordialement

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 141
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par potili2 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    begin
    Button1.Click;
    end.
    Tu as bien mis ce bout de code à l'intérieur d'une méthode de ta classe TForm1?

    *LeGEC*
    *LeGEC*

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Points : 72
    Points
    72
    Par défaut
    merci pour vos réponses.
    Mais je voudrais justement éviter ça pour que mon programme se lance seul et parfois fasse appel au bouton
    mon but serait ceci
    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
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
      flag_conditionnel:integer;
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    showmessage('bouton appuyé');
    end;
     
     begin
     if flag_conditionnel=1 then Button1.click;
     
    end.
    mais peut être n'est ce pas possible
    j'ai été formé à l'époque du basic (basic tout court, le visual basic n'existait pas) et la programmation objet, pour moi, n'est pas innée...

  8. #8
    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
    Delphi est un langage de programmation évènementiel (c'est a dire qui réagit a des évènements déclencher par l'utilisateur ou le programme lui même), qui agit différemment que basic ou pascal ou le code est exécuter de manière ascendante jusqu'à la dernière instruction .

    dans votre cas il faudra peut être placer ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if flag_conditionnel=1 then Button1.click;
    dans l'événement OnShow de la fiche principale si vous voulez qu'il soit exécuté au lancement de votre application ou dans un Timer si vous voulez surveiller la valeur de votre variable...etc.

  9. #9
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Je ne comprends pas trop comment tu veux déclencher le clic ?
    Delphi fonctionne de façon événementielle. Si tu veux que ton clic soit déclenché virtuellement, il faut qu'à un moment donné, la valeur du flag change.

    Si tu sais exactement quand il passe à 1 (lié à un événement, action de l'utilisateur,etc...), alors tu appelles la Button1.Click juste après, sinon, si tu ne sais pas mais que tu veux contrôler de façon périodique la valeur du flag, alors il va falloir utiliser un Timer.

    En espérant t'avoir aidé.
    A+

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Points : 72
    Points
    72
    Par défaut
    merci pour vos réponses.
    en le mettant dans l'évènement onshow, ça fonctionne.
    quand le flag change, le bouton se déclenche.

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

Discussions similaires

  1. [Batch] Lancement programme extérieur
    Par madislak dans le forum Windows
    Réponses: 4
    Dernier message: 15/07/2007, 08h57
  2. lancement programme externe bizarre
    Par edenyorke dans le forum Langage
    Réponses: 4
    Dernier message: 24/05/2007, 10h23
  3. Réponses: 6
    Dernier message: 05/03/2007, 13h54
  4. Button1.click; Button2.click; Button3 etc
    Par kikica dans le forum Delphi
    Réponses: 16
    Dernier message: 02/01/2007, 18h27
  5. Réponses: 4
    Dernier message: 26/11/2006, 23h39

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