Mets l'appel de la procédure dans le survol du bouton, c'est plus marrant![]()
-
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.
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
suenodesign, WX1331, ProDev et 2 autres personnes aiment ça.
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...
Bonsoir elootam,
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
etBonjour 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.
je tente d'intégrer ce code dans windev mobile 29Cliquez pour agrandir...
Regardes du côté de :
// CODE CLIC SUR LE BOUTON
et adapte à ton cas.Cliquez pour agrandir...
Isabelle apprécie ceci.