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 :

Même action sur plusieurs événements


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2015
    Messages : 64
    Points : 35
    Points
    35
    Par défaut Même action sur plusieurs événements
    Bonjour,

    Je sais pas comment décrire mon probleme.
    Je pense que c´est mieux avec le code en commentaires.

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
     
    // cette procedure envoi le ou les ports sélectionnés
     
    Procedure TTabbedForm.DomoSend(port1: ansichar; port2: ansichar; port3: ansichar;
      port4: ansichar; port5: ansichar; port6: ansichar; port7: ansichar;
      port8: ansichar; para3: ansichar);
    var
      Buf, Buf1: AnsiString;
      Data: String;
      I: integer;
     
    begin
     
      Data := #$04#$01#$02#$23 + Exo + #$00#$0a#$01 + port1 + port2 + port3 + port4
        + port5 + port6 + port7 + port8 + para3;
     
      sock.SendString(Data); // + CRLF);
     
      for I := 1 to High(Data) do
      begin
     
        Buf := Data.Substring(4, High(Data));
        Buf1 := Buf1 + StringToHex(Buf[I]);
      end;
      Memo1.Lines.Add(Buf1);
    end;
     
     
    procedure TTabbedForm.ckPortSwitch(Sender: TObject);
      var X: Integer;
        //ThisSwitch: TSwitch;
    begin
      X := 0;
      Switch[X] := Sender as TSwitch;
      //ThisSwitch.OnClick := Nil;
        //if ExoTrue[Y] then
         //  PortState[Y,ThisSwitch.Tag] := ThisSwitch.IsChecked;
           PortState[Y,Switch[x].Tag] := Switch[x].IsChecked;
           CurrentPort :=  Switch[x].Tag;
           SendStateToHW;
     
    end;
     
     
    // Ici je veux dimmer le Port[i];
    procedure TTabbedForm.SendStateToHW;
      var
        i: Integer;
        Line: String;
    begin
     //Line := 'NewState=';
        for i := 0 to 7 do begin
                if ExoTrue[Y] then
                  if PortState[Y,i] then
                     Begin
                     //Line := Line+'FF,';
                     Port[i] := #$FF; //round(Dimming)  // J´ai un pannel avec "gesture igipan" pour modifier cette variable. Mais la variable et just pris en compte aprés que je switch. 
                     EndPort := #$FE;
                     //Dim:=
                     End
                       else
                          Begin
                          //  Line := Line+'00,';
                            Port[i] := #$00;
                            EndPort := #$01;
                          End;
                     //Dim:=
              end;
          Memo1.Lines.Add(Line);
          DomoSend(Port[0], Port[1], Port[2], Port[3], Port[4], Port[5], Port[6],
          Port[7], EndPort);
          Sleep(99);
     end;
     
     
    procedure TTabbedForm.Panel1Gesture(Sender: TObject;
      const [Ref] EventInfo: TGestureEventInfo; var Handled: Boolean);
    Var
      I, X: integer;
      Startpoint: tpoint;
      startdistance: integer;
    Begin
         case EventInfo.GestureID of
     
         igiPan:
            begin
               Dimming := EventInfo.Location.X / 3.69;
               Label10.Text := FloatToStr(round(Dimming));
               Handled := True;
     
            end;
         end;
    end;

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 685
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 685
    Points : 13 102
    Points
    13 102
    Par défaut
    Citation Envoyé par jeng37 Voir le message
    Je sais pas comment décrire mon probleme.
    Nous non plus

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2015
    Messages : 64
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Nous non plus
    Hmm, ben j'essaye de mon mieux.

    La fonction Domosend envoie à chaque fois la modification d'un port. (On ou Off)

    j´ai créé un Panel avec gesture IgiPan, si je swipe à droite, le compteur augmente, et le swipe à gauche fait l´inverse.

    La procedure SendStateToHW, teste quels ports sont sur On ou Off et donne la variable à Domosend.

    Maintenant si je change la variable Port[i] de (0 à 100) dans SendStateToHW
    le status n'est pas pris en compte jusqu'à ce que je mette mon Switch sur Off et puis sur On
    parce que domosend est seulement exécuté par l'événement OnSwitch.

    Mais je ne sais pas comment le faire en runtime (live)

    puhhh pas facile à expliquer....

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 685
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 685
    Points : 13 102
    Points
    13 102
    Par défaut
    Ben en appelant aussi SendStateToHW depuis Panel1Gesture.

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 070
    Points : 15 457
    Points
    15 457
    Billets dans le blog
    9
    Par défaut
    @Andnotor

    Pourrais-tu suggérer un titre convenable pour cette discussion, puisque tu parais avoir compris de quoi il s'agit ?

    Merci !
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    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 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    déjà le verbe "Dimmer" n'est pas dans mon dictionnaire personnel . Je vais tenter l'exercice d'interprétation grâce à ma boule de cristal .


    j'ai compris les choses suivantes :
    il s'agit d'une application à forte consonance de Domotique (c'est DomoSend qui me fait dire ça)
    le programme (FMX ?) semble avoir un affichage d'un ensemble de Switchs (un par port)
    le problème semblerai donc être de savoir comment déclencher une modification (SendStateToHW) lorsque un quelconque des switchs change d'état , un switch correspondant à un port . Ai-je bien compris ?

    reste que tout ceci est à confirmer ! facile de s'y perdre à cause du code et des noms qui ne nous dise rien

    Je pense que c´est mieux avec le code en commentaires.
    en fait non c'est plus embrouillant qu'autre chose !

    [Edit] par curiosité j'ai fait une recherche sur "dimmer" et cela confirmerai un peu mes élucubrations, il s'agit de variateur programmables
    modifier le titre pour "piloter un/des variateurs programmables par programme", "gestion d'un ensemble de switchs pour piloter un variateur programmable" ou tout autre intitulé de ce genre aurait été plus "attrayant" (toujours si c'est bien ça)
    P.S. je me suis appuyé sur ma mémoire ( Alzheimer est encore loin) avant de retrouver un post de Jeng37 (FMX/ANDROID) sur les switchs justement, je pense qu'il s'agit de la même application
    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

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 685
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 685
    Points : 13 102
    Points
    13 102
    Par défaut
    Qu'il s'agisse de domotique est anecdotique. Le titre serait plutôt "Même action sur plusieurs événements".
    Mais modifier le titre ainsi serait comme répondre à la question

  8. #8
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 070
    Points : 15 457
    Points
    15 457
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Le titre serait plutôt "Même action sur plusieurs événements".
    J'achète. Merci également à SergioMaster.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2015
    Messages : 64
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    déjà le verbe "Dimmer" n'est pas dans mon dictionnaire personnel . Je vais tenter l'exercice d'interprétation grâce à ma boule de cristal .


    j'ai compris les choses suivantes :
    il s'agit d'une application à forte consonance de Domotique (c'est DomoSend qui me fait dire ça)
    c´est correct.

    le programme (FMX ?) semble avoir un affichage d'un ensemble de Switchs (un par port)
    le problème semblerai donc être de savoir comment déclencher une modification (SendStateToHW) lorsque un quelconque des switchs change d'état , un switch correspondant à un port . Ai-je bien compris ?
    exactement, un switch par port et 8 ports par module.


    reste que tout ceci est à confirmer ! facile de s'y perdre à cause du code et des noms qui ne nous dise rien

    en fait non c'est plus embrouillant qu'autre chose !
    Ok, j´ai compris...
    ... aussi les messages des autres.


    [Edit] par curiosité j'ai fait une recherche sur "dimmer" et cela confirmerai un peu mes élucubrations, il s'agit de variateur programmables
    modifier le titre pour "piloter un/des variateurs programmables par programme", "gestion d'un ensemble de switchs pour piloter un variateur programmable" ou tout autre intitulé de ce genre aurait été plus "attrayant" (toujours si c'est bien ça)
    P.S. je me suis appuyé sur ma mémoire ( Alzheimer est encore loin) avant de retrouver un post de Jeng37 (FMX/ANDROID) sur les switchs justement, je pense qu'il s'agit de la même application

    Merci en tout cas a vous tous pour la leçon et pour votre aide.
    Désolé pour l'inconvénient que cela a pu vous causer.

  10. #10
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 070
    Points : 15 457
    Points
    15 457
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par jeng37 Voir le message
    Merci en tout cas a vous tous pour la leçon et pour votre aide.
    Désolé pour l'inconvénient que cela a pu vous causer.
    Eh, il ne faut pas vous vexer, hein ? Tout le monde sait que ce n'est pas toujours facile d'expliquer un problème.

    Donc, le problème est résolu ?
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2015
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Juillet 2015
    Messages : 64
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Eh, il ne faut pas vous vexer, hein ? Tout le monde sait que ce n'est pas toujours facile d'expliquer un problème.

    Donc, le problème est résolu ?
    Non je sais pas vraiment comment le faire, méme avec SendStateToHW.

    ... vexer non, mais pour une solution ou une bonne idée je ne dirais pas non.

  12. #12
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    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 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    maintenant que les choses sont claires, je pense que ton problème est simple.
    Sur ce que j'ai déduit tu utilises l'événement OnGesture du panel mais si tu utilisais l'évènement onChange de chaque switch (la même fonction pour les 8) plus peut être une indication du tag = numérotation du switch (0-7 ou 1-8) au choix ça devrait te sortir l'épine du pied

    D'ailleurs en parlant de switch, puisque à priori il s'agit de variateur pourquoi ne pas plutôt passer par des glissières (trackbar) plutôt que (si j'ai bien compris) utiliser le switch comme incrément(on) décrément (off)
    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

Discussions similaires

  1. [Freeware] Mettez un "Live Update" dans vos applications
    Par Hexanium dans le forum Mon programme
    Réponses: 10
    Dernier message: 18/07/2010, 03h34
  2. Enregistrement en live de l'ecran en live ?
    Par bster dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 02/06/2005, 09h31
  3. [plugins] Equivalent des Live Templates dans Intellij
    Par rozwel dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 04/02/2005, 06h37
  4. Problème avec une carte Sound Blaster Live
    Par zogstrip dans le forum Matériel
    Réponses: 4
    Dernier message: 25/09/2004, 20h43
  5. Réponses: 5
    Dernier message: 24/04/2003, 22h08

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