Quantcast
Channel: PC SOFT - Blogs
Viewing all 1435 articles
Browse latest View live

Vue HFSQL, objets connectés - Android Wear, notifications riches et avec action, mise à jour de l'aide en ligne...


Développement iOS (iPhone, iPad), à compter du 1/2/2015 la diffusion d'une application sur l'AppStore nécessite sa compilation en 32 et 64 bits

$
0
0
A partir du 1er février 2015 la société Apple impose que toutes les applications iOS soient obligatoirement compilées en 32 bits ET en 64 bits :


La génération iOS en mode 64 bits est une nouveauté de la version 20 de WINDEV Mobile. Il est donc important de recompiler sans plus attendre les applications WINDEV Mobile en version 20, afin de conserver la possibilité de les diffuser dans l'AppStore après cette échéance !

Référencement des sites web, l'importance de la balise Meta-Description !

$
0
0
Référencement des sites web, l'importance de la balise Meta-Description !
WEBDEV propose un assistant pour le référencement des sites, il est accessible par le choix "Optimiser le référencement" du bouton "Référencement" du volet "Projet" du ruban :

Sur ce thème voici un article intéressant qui détaille notamment l'importance du titre et de la balise meta-description dans le référencement / "web-ranking" :


Le contenu de la meta-description ne va pas améliorer directement le référencement de la page, mais favoriser sa sélection par l'internaute à choix égal, et donc par effet indirect, augmenter le "web-ranking" ....

Sommaire de la LST 99

$
0
0
Le sommaire de la LST 99 est en ligne. Les envois vont débuter :  
  • à partir du 29 janvier en courrier "Fréquence" pour la France Métropolitaine (livraisons prévues semaines 6 et 7).  
  • à partir du 3 février en Courrier Postal Prioritaire pour les DOM-TOM et Etranger (livraisons prévues semaines 7 et 8 selon les destinations). 


Parmi les exemples :
  • CHAMPS CARTE, TABLE, ETC. ACTIVER AUTOMATIQUEMENT LA ROULETTE DE LA SOURIS AU SURVOL (WINDEV) 
  • BEST PRACTICE : ENRICHISSEZ UNE FONCTION DU WLANGAGE (WINDEV, WEBDEV, WINDEV Mobile) 
  • WINDEV 20 : LES DONNÉES D'UN CHAMP TCD (CUBE ROLAP) DANS 1 GRAPHE (WINDEV) 
  • EXPLICATIONS JQUERY : SCROLL AUTOMATIQUE & ANIMATIONS (WEBDEV) 
  • 4 ASTUCES POUR ANDROID (WINDEV Mobile) 
  • PILOTEZ UN SITE PRESTASHOP DEPUIS UNE APPLICATION WINDEV ! (WINDEV) 
  • AMÉLIORER SIMPLEMENT L'ASPECT DES GRAPHIQUES (WINDEV) 
  • PERSONNALISER LE MENU CONTEXTUEL D'UNE COLONNE DE TABLE (WINDEV) 
  • ASTUCE : DÉROULER UN MENU PAR PROGRAMMATION (WINDEV) 
  •  QUESTIONS & RÉPONSES (WINDEV, WEBDEV, WINDEV Mobile) 
  • UN NOUVEAU GABARIT DE PRÉSENTATION D'ACTUALITÉS (WINDEV Mobile) 
  • UN SITE DE PRÉSENTATION PRÊT À L'EMPLOI (WEBDEV) 
  • MOBILE & SÉCURITÉ : DES MODÈLES DE CHAMPS POUR DÉVERROUILLER UNE APPLICATION OU SÉCURISER UNE ACTION (WINDEV Mobile) 
  • WEBDEV : DES CHAMPS DE SAISIE ET DES COMBOS QUI ONT DU STYLE !!! (WEBDEV) 
  • UTILITAIRE POUR IPHONE/IPAD GÉNÉRER UN SPLASH SCREEN POUR TOUTES LES RÉSOLUTIONS (WINDEV, WINDEV Mobile) 
  • N'OUBLIEZ PLUS D'EFFACER LES FICHIERS TEMPORAIRES ! (WINDEV) 
  • UN COMPOSANT INTERNE POUR DÉVELOPPER UN WEBSERVICE REST “STANDARD”, ET COMMENT LE CONSOMMER (WEBDEV) 
  • TRANSFORMER UN TEXTE RTF AVEC IMAGES EN DOCUMENT HTML (WINDEV) 
  • UN CHAMP DE RECHERCHE AU GOÛT DU JOUR ! (WINDEV) 
  • CHAMP RTF : AFFICHER UNE BULLE D'AIDE AU SURVOL D'UN MOT (WINDEV) 


Le b.a.-ba de l'analyse de trames ... suite avec le nouveau type httpRequete !

$
0
0
Un précédent billet abord le thème de la mise au point d'échange de données avec des requêtes HTTP. L'utilitaire Wireshark est proposé en illustration afin par exemple de consulter un échange complet entre une application et un serveur :  

Le nouveau type httpRequete proposé depuis la version 20 de WINDEV, WEBDEV et WINDEV Mobile peut faciliter la mise au point de requêtes, il remplace au passage très avantageusement la fonction HTTPRequete : 

Ainsi un simple point d'arrêt dans le débogueur peut permettre de voir la réponse d'une requête, sans passer par un utilitaire parallèle :


Connaître l'alias d'un volet dynamique ajouté dans un onglet MDI par le bouton "+" ...

$
0
0
Le traditionnel champ onglet a été complété en version 20 afin de permettre l'ajout dynamique de volets. On parle alors d'un onglet MDI, qui permet par exemple d'avoir le même principe de manipulation des volets que dans un navigateur :


Voici les liens se rapportant à la fonctionnalité : 

Les volets dynamiques se manipulent non pas par un indice comme les volets décrits dans l'éditeur, mais par un alias. Exemple lors de l'ajout d'un volet :  

soitsAlias = OngletOuvre(ONG_TEST,"Libellé volet",FI_POUR_ONGLET)

L'alias obtenu permet ensuite :
  • de rendre ce volet actif :
    ONG_TEST=sAlias
  • d'affecter un champ de ce volet :
    {sAlias+".SAI_TEST"} ="Texte"

L'onglet MDI permet également à l'utilisateur final d'ajouter un volet par un clic sur le volet "+". Dans le cas général aucune programmation n'est nécessaire pour permettre cette possibilité, il suffit que l'option "avec bouton nouveau" soit coché dans le volet "Détail" de la description du champ :


Par contre, si l'on souhaite pouvoir manipuler par programmation le volet ajouté par le bouton "+", il faut utiliser la méthode suivante :
  • éditer le code du volet MDI,
  • dans le code "Création d'un volet", ajouter un appel de la fonction OngletOuvre tel que décrit précédemment, en récupérant l'alias renvoyé par la fonction. 


En effet le bouton "+" de l'onglet MDI fait automatiquement l'appel de ce code, et s'il utilise la fonction OngletOuvre c'est ce dernier qui sera pris en compte.


Nouvelle version de WINDEV, WEBDEV et WINDEV MOBILE 20 (200051j)

Libération et maintien des sessions des sites Web dynamiques

$
0
0
Les sites dynamiques conservent une session active sur le serveur qui les héberge, pour tous les internautes connectés. Ce mécanisme est déjà détaillé dans le billet suivant :  

Un complément d'information sur ce thème est nécessaire. En effet une nouveauté de WEBDEV incluse à partir de la version 19, reposant sur une possibilité de HTML 5, apporte une nouvelle solution pour les sites qui doivent conserver une session constamment active sur le serveur. Si précédemment l'utilisation d'un timer pouvait s'imposer, il est maintenant possible de l'éviter. 

Dans la description d'un projet une option "maintenir automatiquement les sessions ouvertes (uniquement HTML 5)" est proposée :


Avec l'option "maintenir automatiquement les sessions ouvertes (uniquement HTML 5)" au niveau du projet, les sessions sont maintenues actives tant que la communication avec le navigateur fonctionne, donc tant qu'une page du site est affichée dans le navigateur de l'internaute : cela éviter un timeout des sessions.

D'autre part les pages disposent d'une option "Rafraîchir les données de la page depuis le serveur" dans le volet "Détail" de la description :


L'option "Rafraîchir les données de la page depuis le serveur" permet d'envoyer depuis le code serveur des données vers le navigateur sans timer dans le navigateur. Un code Ajax serveur et un code navigateur sont automatiquement ajoutés dans la page : 


Le code serveur est appelé automatiquement en boucle, en utilisant comme fréquence la "période de rafraîchissement" indiquée dans la description de la page. Il n'est plus nécessaire d'avoir d'une procédure navigateur appelée par Timer, pour faire appel à la fonction AjaxExécute). Par exemple le code serveur "Rafraîchissement des données" consulte une information de la base de données, et met à jour si besoin des champs de la page. Si une mise à jour est faite, le code navigateur "Après rafraîchissement" est appelé. Cela permet "côté navigateur", de pouvoir notifier l'utilisateur du site qu'une modification a été faite, par exemple avec un "toast" de notification (cf. ToastAffiche).  Le code serveur "Rafraîchissement des données" peut également effectuer une action sans provoquer l'appel du code navigateur "Après rafraîchissement", il suffit pour cela de "RENVOYER Faux" à la fin du traitement.

A noter que l'administrateur de WEBDEV permet de voir l'activité provoquée par l'appel du code "Rafraîchissement des données : le délai "Inactif depuis" montré dans la liste des connexions au site (volet "Connexions" de l'administrateur), est remis à zéro à chaque appel automatique du code.
___________________________________

Ces options utilisent la technologie "Server-sent events" (SSE), qui permet à la session (côté serveur) d'initier la transmission de données vers le navigateur une fois que la connexion initiale a été mise en place. 

Cette technologie permet de ne pas consommer de bande passante inutile avec un timer qui ferait des demandes "pour rien" au serveur. De plus sans timer "côté du navigateur" il n'y a pas d'activité de ce dernier, donc son utilisation du CPU est réduite. C'est donc particulièrement intéressant pour les sites visités depuis des smartphones ou tablettes : réduction de la consommation du forfait data, et de la batterie. 

Attention, reposant sur HTML 5, l'utilisation de cette solution nécessite de vérifier au préalable que tous les utilisateurs du sites pourront en bénéficier. Certains navigateurs peuvent ne pas supporter ce mécanisme, certaines stratégies de sécurité et antivirus peuvent bloquer des protocoles.





Comment exécuter des traitements "back-office" pour un site WEBDEV, sans programme supplémentaire sur le serveur ?

$
0
0
Un site WEBDEV dynamique déployé sur un serveur a fréquemment besoin d'effectuer des traitements en "back-office", afin de pouvoir effectuer des traitements longs sans attente de l'utilisateur du site :
  • importation, exportation, consolidation de données,
  • traitement de supervision,
  • push de notification,
  • emailing...

Notre support a régulièrement la demande : comment faire tous ces traitements si faciles avec un programme WINDEV lancé en service ou par une tâche planifiée, lorsque le site est déployé sur un serveur mutualisé, qui ne permet pas l'exécution d'un programme compilé (seul le serveur d'application de WEBDEV s'exécute) ?

C'est en fait très simple, mais souvent méconnu, WEBDEV apporte une solution depuis la version 18 grâce aux tâches planifiées et tâches différées. Là où un programme WINDEV sans interface aurait fait l'exécution du traitement "back-office" lancé à intervalles réguliers par une tâche planifiée, une procédure globale du site sera créée dans le site avec l'automatisme adéquate :


 
Cette solution s'applique bien sûr aux plateformes de déploiement hébergées sur PCSCLOUD, du moment que le rôle "serveur d'application" est actif.

Mise à jour de l'espace téléchargement, version 200051m de WINDEV, WEBDEV et WINDEV MOBILE 20 disponible

Le point sur le menu principal d'une application Android (APK), en fonction de la version de Android, et de la version de WINDEV Mobile

$
0
0
Un point s'impose sur la place du menu principal dans les applications pour Android. En effet, les applications les plus anciennes initialement développées pour Android 1.X ou 2.X, peuvent ne plus afficher le bouton d'ouverture du menu principal en fonction de options de compilation de la version de WINDEV Mobile utilisée pour générer l'application. 

Avant la version la version 3.0 de Android, les applications offraient généralement un accès au menu principal des fenêtres via un bouton dans la barre de navigation pour les appareils ne disposant pas de boutons physique :
  • si le menu comportait moins de 6 options, il s'affichait sous forme de boutons en bas de l'écran, 
  • si le menu comportait plus de 6 options, les 5 premières options s'affichaient sous forme de gros boutons, et un sixième bouton automatique "Plus" permettait à l'utilisateur de voir la suite du menu sous forme d'un menu déroulant. 
A partir de la version 3.0 de Android, pour une "expérience utilisateur" améliorée et une homogénéisation des application, Google recommande l'utilisation de l'Action Bar pour permettre un accès au menu principal.

Cette différence de gestion du menu principal n'avait pas d'impact sur les application WINDEV Mobile compilées avec une version antérieure à la 20. En effet, WINDEV Mobile 19 par exemple compilait l'application en indiquant dans sa description une compatibilité relativement ancienne (via le "targetSdkVersion" de son "manifeste"). Les périphériques Android utilisaient ainsi un mode de compatibilité permettant dans tous les cas l'affichage du menu.

A partir de la version 20 de WINDEV Mobile, les applications sont générées avec une compatibilité plus élevée (le "targetSdkVersion" de son "manifeste" passe à 14). C'est nécessaire afin que les applications bénéficient des améliorations et de l'apparence des versions les plus récentes du système Android. Mais cela a pour conséquence sur les périphériques de désactiver le mode de compatibilité permettant l'affichage systématique du bouton d'accès au menu principal.

Afin de permettre l'utilisation du menu principal dans tous les cas de figure, les solutions dépendent donc des périphériques utilisés pour le déploiement :

1. Si tous les périphériques des utilisateurs de l'application sont sous Android 3.X, 4.X ou 5.X :

  • La solution vivement recommandée consiste à utiliser un champ Action Bar. Il permettra l'accès au menu via l'Action Bar, tout en donnant à l'application l'aspect "standard" des applications Android ce qui facilite sa prise en mains par les utilisateurs. 
  • L'autre alternative peut consister à ajouter un bouton appelant la fonction OuvreMenuPrincipal
2. Si des périphériques Android 1.X ou 2.X restent utilisés pour cette application :

  • restaurer une compatibilité antérieure pour l'application lors de sa génération :  
    • génération de l'application,
    • étape "Configuration",
    • bouton "Configuration avancée",
    • bouton "Editer le manifeste",
    • dérouler le nœud "uses-sdk",
    • modifier la valeur de "targetSdkVersion" en précisant la même valeur que "minSdkVersion" : 

  • ou ajouter un bouton appelant la fonction OuvreMenuPrincipal

Nouvelle version de WINDEV, WEBDEV et WINDEV Mobile 20 (200057h)

Extraire simplement des données JSON dont la structure n'est pas connue à l'avance ...

$
0
0
L'utilisation de données au format JSON (JavaScript Object Notation – Notation Objet issue de JavaScript) avec un formatage déterminé à l'avance, est très simple en WLangage, grâce au principe de sérialisation. En effet les fonctions Désérialise et Sérialise permettent de transférer les données JSON dans des structures et/ou tableaux WLangage, qui permettent ensuite toutes les actions possibles. 

Par contre lorsqu'une application, ou un site, doit exploiter des données JSON dont le format et les clés ne sont pas connus à l'avance, ou que le format va très probablement être changé, l'utilisation de structures alimentées par la fonction Désérialise n'est plus possible. Dans ce cas, il faut parcourir l'ensemble de la structure afin d'obtenir les différentes clés et leurs valeurs, ainsi que l'arborescence. Pour ce besoin le WLangage propose également une fonction qui fait l'essentiel du travail : JSONVersVariant. Combinée avec la propriété ..Membre, la fonction JSONVersVariant permet en effet un parcours simple d'un JSON d'une structure quelconque, via le type variant.

Voici un exemple de parcours générique, il peut être testé par un copier/coller dans le code d'un bouton par exemple. Il montre comment effectuer le parcours en faisant une "Trace" des clés et valeurs du JSON. Dans la pratique la trace peut être remplacée par tout type d'action en fonction des besoins :
  • chargement d'un tableau associatif en utilisant les clés du JSON comme indices pour le tableau
  • écriture des données dans une base ...
sJSon est une chaîne= [
 {"menu": {
 "id": "file",
 "value": "File",
 "popup": {
 "menuitem": [
 {"value": "New", "onclick": "CreateNewDoc()"},
 {"value": "Open", "onclick": "OpenDoc()"},
 {"value": "Close", "onclick": "CloseDoc()"}]}}}
] // exemple de http://json.org/example

vJSON est un Variant = JSONVersVariant(sJSon)

 
ParcoursMembresVariant(vJSON)


 Procedure INTERNE ParcoursMembresVariant(_ObjetOuTableau)
 
 SELON _ObjetOuTableau..Type
 
  CAS wlVariantObjet :
 
   POUR TOUT _Membre DE _ObjetOuTableau..Membre
   
    SI _Membre..Membre..Occurrence=0ALORS
     
     SELON _Membre..Type
      CAS wlVariantTableau :
       Trace(Répète("--",ChaîneOccurrence(dbgInfo(dbgPile),RC)) +...
       "Le membre "+ _Membre..Nom+...
        " contient un tableau...")
       ParcoursMembresVariant(_Membre)
      AUTRES CAS:
       Trace(Répète("--",ChaîneOccurrence(dbgInfo(dbgPile),RC)) +...
        "Le membre "+ _Membre..Nom+" a la valeur "+...
         _Membre..Valeur)
     FIN
    SINON
     Trace(Répète("--",ChaîneOccurrence(dbgInfo(dbgPile),RC)) +...
       "Le membre "+ _Membre..Nom+" a "+...
        _Membre..Membre..Occurrence+" autres membres...")
     ParcoursMembresVariant(_Membre)
    FIN
   FIN
   
  CAS wlVariantTableau :
   Trace(Répète("--",ChaîneOccurrence(dbgInfo(dbgPile),RC)) +...
    "Tableau de "+_ObjetOuTableau..Occurrence+" éléments...")
   
   POUR TOUT ELEMENT UnElement, Compteur DE _ObjetOuTableau
    Trace(Répète("--",ChaîneOccurrence(dbgInfo(dbgPile),RC)) +...
     "Exploration de l'élément "+Compteur+"/"+_ObjetOuTableau..Occurrence)
    ParcoursMembresVariant(UnElement)
   FIN
   
  AUTRES CAS:Trace("A gérer ("+_ObjetOuTableau..Type+") !?"+_ObjetOuTableau)
 FIN
 FIN
 



A noter que le code utilise une procédure interne. Elles sont très pratique lorsqu'un code à besoin d'une procédure qui lui est dédiée (récursivité comme ici, et les fonctions WLangage utilisant une "callback"). Elles évitent la création d'une procédure locale à la fenêtre. De plus lorsque le code est copié/collé, la procédure interne l'est également. 

Documentation des procédures internes disponible !

$
0
0
Les procédures internes proposées dans la version 20 de WINDEV, WEBDEV et WINDEV Mobile sont disponibles depuis la version 200057K.

Une illustration a été donnée dans le blog avec le parcours d'un document JSON. Mais les cas d'utilisation sont nombreux, y compris en "Callback" pour des fonctions asynchrones !

Leur documentation vient à l'instant d'être mise en ligne, voici le lien :


Microsoft Windows 10 annoncé pour le 29/7/2015, pilote SafeNet version 7.32 adapté

$
0
0
Microsoft annonce officiellement la sortie de Windows 10 pour le 29 juillet 2015.

Actuellement une version Windows 10 Pro Insider Preview (build 10074) est proposée en téléchargement par l'éditeur : 

Il est tout à fait possible d'utiliser WINDEV, WEBDEV et WINDEV Mobile 20 sous Windows 10 Pro Insider Preview, il suffit de disposer de la version 7.32 du pilote SafeNet :



Il s'agit de la version minimale du pilote permettant la reconnaissance de la clé sous Windows 10 Pro Insider Preview (build 10074).

FAQ utiles sur ce thème : 



Nouvelle version 200066h de WINDEV, WEBDEV et WINDEV MOBILE 20

Nouvelle version de WINDEV, WEBDEV et WINDEV MOBILE 20 (200066p)

Nommer les paramètres pour les appels de fonctions et procédures WLangage

$
0
0
Le WLangage à partir de la version 20 de WINDEV et WEBDEV permet de nommer les paramètres des procédures.

Il est ainsi possible de remplacer le traditionnel appel :

 MaProcédure("WINDEV",20)

Par l'appel suivant :

 MaProcédure.nVersion =20
 MaProcédure.sNomProduit ="WINDEV"
 MaProcédure()

Ou encore par l'appel suivant :

 MaProcédure(<nVersion>:20,<sNomProduit>:"WINDEV")


Dans cet exemple l'intérêt est limité. Dans une procédure existante à laquelle des paramètres sont régulièrement ajoutés, ces syntaxes deviennent extrêmement pratiques (voir "incontournables" une fois habitué !) :
  • lisibilité : le nom du paramètre est toujours visible : risque d'erreur réduit,
  • l'ordre des paramètres peut être quelconque : risque d'inversion supprimé,
  • le mécanisme de sécurité du WLangage reste complètement actif à l'exécution, en signalant par exemple les paramètres obligatoires manquants.

Une animation "live" est disponible dans un tweet :





Faciliter la transmission d'un mode opératoire grâce à l'utilitaire PSR

$
0
0
L'expression "un croquis vaut mieux qu'un long discours" s'applique très souvent dans toutes les communications entre développeurs et utilisateurs. Plutôt qu'une longue description écrite "cliquez ici", "observez là que...", il est souvent bien plus efficace d'échanger quelques copies des écrans manipulés, en entourant les choix effectués, en annotant. Inconvénient, fournir une série de copies d'écran, les annoter, devient rapidement fastidieux, à moins de profiter de l'utilitaire PSR ...

Problem Steps Recorder (PSR) est un utilitaire inclus en standard avec Windows, capable de fournir un zip autonome qui montre toute une série de manipulations quelque soit l'application.

Voici comme l'utiliser :
  • menu "Démarrere de Windows, 
  • saisir "PSR", 
  • clic droit sur l'icône du programme, 
  • "Exécuter en tant qu'administrateur", 

  • cliquer sur "Commencer l'enregistrement", 



  • effectuer l'ensemble des actions à montrer,
  • arrêter l'enregistrement.

C'est terminé ! Un zip est automatiquement créé avec à l'intérieur un fichier .MHT. Il suffit de le lancer avec son programme associé (Internet Explorer par défaut), afin d'avoir sous les yeux la copie des écrans qui viennent être enregistrés. Sur chaque image, une mise en évidence est faite sur le champ qui a "pris le focus", on voit donc toutes les actions faites les unes après les autres.

PSR peut être utilisé afin de joindre un mode opératoire à notre support. Vous pouvez joindre le zip dans l'utilitaire "RequeteAuSt" directement si sa taille n'excède pas 10 mo. Si le zip est plus important, il suffit de le déposer sur Internet (ftp, web, hubic, dropbox...) et de préciser le lien de téléchargement dans votre demande.

La LST 101 est disponible !

$
0
0
La LST 101 est disponible !


France Métropolitaine : les envois seront expédiés à partir du 8 juillet en courrier "Fréquence". Les livraisons sont prévues semaines 29 et 30.
DOM-TOM et Etranger : les envois seront expédiés le 15 juillet en Courrier Postal Prioritaire. Les livraisons sont prévues semaines 30 et 31 selon les destinations.

Au sommaire de la LST 101 :
 
  • DES SITES ADAPTATIFS AVEC BOOTSTRAP ET WEBDEV 20 
    (WEBDEV) 
  • STOCKER DES MOTS DE PASSE ... SANS LES STOCKER 
    (WINDEV, WEBDEV, WINDEV Mobile) 
  • TÂCHES PARALLÈLES : DÉCLENCHER UNE TÂCHE SELON D'AUTRES TÂCHES 
    (WINDEV) 
  • ANDROID / IOS : AFFICHER UNE PUBLICITÉ AU FORMAT INTERSTITIEL 
    (WINDEV Mobile) 
  • UN GRAPHE DONUT QUI RÉAGIT AU DOIGT ! 
    (WINDEV Mobile) 
  • KML : STOCKAGE DE DONNÉES GÉOSPATIALES 
    (WINDEV) 
  • METTRE EN PLACE UNE VISIOCONFÉRENCE PAR INTERNET 
    (WINDEV) 
  • ANALYSE GÉNÉRIQUE D'UN CODE JSON 
    (WINDEV) 
  • INTERROGER UN SERVICE GOOGLE (CONTACTS)
    (WINDEV) 
  • COMPRESSION DE DONNÉES VIA GZIP (.NET) 
    (WINDEV) 
  • PROTÉGEZ VOS DONNÉES SENSIBLES EN MÉMOIRE 
    (WINDEV) 
  • UNE AMBIANCE ADAPTÉE À UN RESTAURANT 
    (WEBDEV) 
  • UN NOUVEAU GABARIT DE GESTION DE PLAN DE SALLE 
    (WINDEV Mobile) 
  • IOS & ANDROID : NE BLOQUEZ JAMAIS L'UTILISATEUR GRÂCE À LA PROGRAMMATION ASYNCHRONE ! 
    (WINDEV Mobile) 
  • UTILITAIRE : GÉNÉRER UN CACHET CIRCULAIRE 
    (WINDEV, WEBDEV, WINDEV Mobile) 
  • CHAMP ONGLET DYNAMIQUE (ONGLETS GENRE “NAVIGATEUR”) : 4 ASTUCES PRATIQUES ! 
    (WINDEV) 
  • DES ÉTATS FACILES À PLIER
    (WEBDEV, WINDEV Mobile) 
  • IMPRIMER FACILEMENT LE CONTENU DU CHAMP TABLEUR 
    (WINDEV) 
  • DÉPLOYER AUTOMATIQUEMENT UN SERVEUR HFSQL : 3 MÉTHODES ! 
    (WINDEV) 
  • LES COLONNES D'UNE ZONE RÉPÉTÉE OCCUPENT TOUT L'ESPACE ! 
    (WINDEV) 
  • WEBDEV : AFFICHER UNE POPUP EN CAS D'INACTIVITÉ
    (WEBDEV) 
  • LE SAVIEZ-VOUS ?
    (WINDEV, WEBDEV, WINDEV Mobile) 
  • QUESTIONS & RÉPONSES 
    (WINDEV, WEBDEV, WINDEV Mobile) 
Le “Goodies du trimestre” est un superbe ensemble de plage !

Viewing all 1435 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>