1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Déplacer les boutons en temp reel windev

Discussion dans 'Windev' créé par michel, Fev 23, 2018.

  1. michel

    michel Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    174
    J'aime reçus:
    598
    [​IMG]

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    :)


    Code:

    Déclaration globale
    V_X , V_Y est un réel
    V est un booléen=0
    btn_encour est une chaîne


    Fenêtre Survol
    V_X=SourisPosX()
    V_Y=SourisPosY()


    Procédure

    PROCEDURE Deplacer()
    TANTQUE V
    Multitâche(-2)
    {btn_encour,indChamp}..X=V_X
    {btn_encour,indChamp}..Y=V_Y
    FIN


    Clic sur le Bouton
    SI V ALORS
    V=Faux
    ThreadArrête("TH")
    SINON
    V=Vrai
    btn_encour=MoiMême..Nom
    ThreadExécute("TH",threadNormal,Deplacer)
    FIN

    La vidéo :
     
    #1 michel, Fev 23, 2018
    Dernière édition par un modérateur: Juil 25, 2018
    Tags:
  2. bditw

    bditw Member

    Inscrit:
    Jan 6, 2018
    Messages:
    46
    J'aime reçus:
    10
    Mercii bcp , SVP comment dupliqué plusieurs fois un bouton !?
     
  3. michel

    michel Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    174
    J'aime reçus:
    598
    Regarde la Fonction ChampClone()
     
  4. bditw

    bditw Member

    Inscrit:
    Jan 6, 2018
    Messages:
    46
    J'aime reçus:
    10

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Regarde la Fonction ChampClone()
    Cliquez pour agrandir...
    Merci bcp mon frère :)
     
  • charlie

    charlie Active Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    201
    J'aime reçus:
    190
    Mets l'appel de la procédure dans le survol du bouton, c'est plus marrant ;)
     
    gapplicat apprécie ceci.
  • Yusep

    Yusep Active Member
    DUMP TEAM

    Inscrit:
    Jan 3, 2018
    Messages:
    203
    J'aime reçus:
    155
    Bonsoir
    Suite à votre idée, j'ai creusé un peu plus et pouvoir memoriser la position des boutons et aussi pouvoir revenir aux positions originales.
    Quelques idées, je les avait déjà lues sur certains forums (je n'avais pas noté la référence).

    Code (Text):

    // DECLARATIONS GLOBALES DE LA FENETRE
    // nombre total de boutons pour dimensionner le tableau
    nNumBTN est un entier = 0
    // tableau contenant le nom des boutons
    tab_BTN est un tableau dynamique de chaînes
    // NOM DU BOUTON SURVOLE
    sBTN est une chaîne
    // FICHIER DES PARAMETRES DE L'UTILISATEUR
    sFicBTN est une chaîne
    // FICHIER DES PARAMETRES ORIGINAUX
    sFicBTN_ORI est une chaîne

    sFicBTN=".\BTN_"+Majuscule(NetNomMachine())+"_"+Majuscule(RéseauUtilisateur()) + ".xml"
    sFicBTN_ORI=".\BTN_"+Majuscule(NetNomMachine())+"_"+Majuscule(RéseauUtilisateur())+"_ORI" + ".xml"

    // WM_LBUTTONDOWN uniquement sur les champs de la fenêtre
    Evénement("BTN_Clic",".*", 513)
     
    Code (Text):
    // INITIALISATION DE LA FENETRE
    // MEMORISER LES BOUTONS DE LA FENETRE
    BTN_Init()

    SI fFichierExiste(sFicBTN)=Vrai ALORS
        BTN_Restore(sFicBTN)
    SINON
        SI fFichierExiste(sFicBTN_ORI)=Vrai ALORS
            BTN_Restore(sFicBTN_ORI)
        SINON
            BTN_Save(sFicBTN_ORI)
        FIN
    FIN
     
    Code (Text):
    // BOUTON GAUCHE DOUBLE-CLIC DE LA FENETRE
    BTN_Reset()
     
    Code (Text):
    // CODE CLIC SUR LE BOUTON
    SI ToucheEnfoncée(teControl)=Vrai ALORS
        // ON SAUVE LES NOUVELLES COORDONNEES DU BOUTON
        BTN_Save(sFicBTN)
        RETOUR
    FIN
    // CODE DU BOUTON SANS DEPLACEMENT
    // ...

     
    Code (Text):
    PROCEDURE BTN_Clic()

    sBTN=ChampSurvol(Faux,Faux)

    Evénement("BTN_Move", sBTN, 512)
     
    Code (Text):
    PROCEDURE BTN_Init()

    ni est entier
    sNomBTN est une chaîne

    // Premier champ de la fenêtre
    ni=1
    sNomBTN = EnumèreChamp({MaFenêtre..Nom,indFenêtre}, ni)
    nNumBTN=0
    TANTQUE sNomBTN<>""
        // Traitement du champ
        SI sNomBTN[[1 A 4]]="BTN_" ALORS
            nNumBTN++
            // on n'oublie pas de redimensionner le tableau de noms
            Dimension(tab_BTN, nNumBTN)
            // on enregistre le nom du nouveau champ dans le tableau
            tab_BTN[nNumBTN] = sNomBTN
        FIN
        // Champ suivant
        ni++
        sNomBTN = EnumèreChamp({MaFenêtre..Nom,indFenêtre}, ni)
    FIN
     
    Code (Text):
    PROCEDURE BTN_Move()

    nPosXBTNInit est un entier = {sBTN,indChamp}..X
    nPosYBTNInit est un entier = {sBTN,indChamp}..Y

    SI ToucheEnfoncée(teBoutonG)=Vrai ET ToucheEnfoncée(teControl)=Vrai ALORS
        {sBTN,indChamp}..X = nPosXBTNInit + SourisPosX()
        {sBTN,indChamp}..Y = nPosYBTNInit + SourisPosY()
        FenRepeint(MaFenêtre)
    FIN
     
    Code (Text):
    PROCEDURE BTN_Reset()

    // ON SUPPRIME LE FICHIER DES PARAMETRES DE L'UTILISATEUR
    SI fFichierExiste(sFicBTN) ALORS
        SI fSupprime(sFicBTN)=Faux ALORS
            Erreur()
        SINON
            // ON RESTAURE LES PARAMETRES ORIGINAUX
            BTN_Restore(sFicBTN_ORI)
            // ON SAUVE LES PARAMETRES ORIGINAUX DANS LE FICHIER DE L'UTILISATEUR
            BTN_Save(sFicBTN)
        FIN
    FIN
     
    Code (Text):
    PROCEDURE BTN_Restore(sFicXML est une chaîne)

    // Paramétrage des valeurs persistantes
    // dans un fichier .XML qui dépend de l'utilisateur
    InitParamètre(paramXML, sFicXML)

    POUR ni = 1 _A_ nNumBTN
        // Restauration
        {tab_BTN[ni],indChamp}..X = ChargeParamètre(tab_BTN[ni]+"_X","")
        {tab_BTN[ni],indChamp}..Y = ChargeParamètre(tab_BTN[ni]+"_Y","")
    FIN
     
    Code (Text):
    PROCEDURE BTN_Save(sFicXML est une chaîne)

    // Paramétrage des valeurs persistantes
    // dans un fichier .XML qui dépend de l'utilisateur
    InitParamètre(paramXML, sFicXML)

    POUR ni = 1 _A_ nNumBTN
        // Sauvegarde
        SauveParamètre(tab_BTN[ni]+"_X", {tab_BTN[ni],indChamp}..X)
        SauveParamètre(tab_BTN[ni]+"_Y", {tab_BTN[ni],indChamp}..Y)
    FIN
     
     
  • elootam

    elootam New Member

    Inscrit:
    Mar 1, 2019
    Messages:
    1
    J'aime reçus:
    0
    BONJOUR

    je tente d'intégrer ce code dans windev mobile 29 et .. Oui le bouton se déplace mais.. Je voudrais quand même un traitement quand l'utilisateur "clique" réélement sur le bouton pour déclencher une action et.. je ne trouve pas..

    Pour enregistrer les coordonnées, j'écris dans un fichier ini à la sortie du logiciel et vais lire ce même fichier ini au lancement...
     
  • Isabelle

    Isabelle Active Member

    Inscrit:
    Jan 18, 2018
    Messages:
    296
    J'aime reçus:
    210
    Bonsoir elootam,

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    et

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    on la gentillesse de donner un principe.
    Il vous donnent même le code source.
    A vous d'en faire ce que vous voulez mais de là à ne pas savoir l'adapter à vos besoins,
    faut pas pousser le bouchon trop loin.

    Regardes du côté de :
    // CODE CLIC SUR LE BOUTON
    et adapte à ton cas.
     
    WX1331 et Dandypunk aiment ça.
  • Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    550
    J'aime reçus:
    302

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    je tente d'intégrer ce code dans windev mobile 29
    Cliquez pour agrandir...

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Regardes du côté de :
    // CODE CLIC SUR LE BOUTON
    et adapte à ton cas.
    Cliquez pour agrandir...
    WM 29 n'autorisera peut être plus cela. Il se contentera de récupérer les code développés par les autres. La L6G
     
    Isabelle apprécie ceci.
  • Partager cette page

    Chargement...