Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 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 | | Calendrier |
|
|
| V3.08 du 08/06/2014 - nouvelle fonction BuildHtmlFromWindow | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: V3.08 du 08/06/2014 - nouvelle fonction BuildHtmlFromWindow Dim 8 Juin 2014 - 16:57 | |
| Nouvelle version: KGF.dll V3.08 su 08/06/2014Nouveauté: nouvelle fonction BuildHtmlFromWindowModules modifiés: KGF.dllLa doc et les sources ne sont pas encore mis à jour !Cette fonction est appelée de la manière suivante: - Code:
-
res% = dll_call2("BuildHtmlFromWindow",hnd%,adr(file$)) hnd% est le handle d'une fenêtre quelconque. On peut passer handle(0), ou le handle d'une fenêtre d'un autre programme, etc. file$ est une variable contenant le nom d'un fichier *.html qui recevra une représentation HTML de la fenêtre visée. Pour le moment, le programme reconnaît les objets suivants: - Panel - Edit - Memo - Button Le bouton HTML généré est cliquable. Le code HTML généré peut être directement chargé dans un browser (IE, FireFox, ...). Voici un programme de démo: - Code:
-
' test_conversion_en_HTML.bas caption 0,"Test conversion Form"
label generer dim res%, file$
button 1 : top 1,10 : left 1,10 : caption 1,"Un bouton" memo 2 : top 2,40 : left 2,50 panel 10 : top 10,150 : left 10,30 : width 10,200 edit 11 : parent 11,10 : top 11,20 : left 11,20 : width 10,200 : height 10,200 panel 20 : parent 20,10 : top 20,50 : left 20,20 : width 20,150 : height 20,120 button 21 : parent 21,20 : top 21,20 : left 21,20 : caption 21,"Autre bouton" on_click 21,generer dll_on "KGF.dll"
end
generer: file$ = "test2.html" res% = dll_call2("BuildHtmlFromWindow",handle(0),adr(file$)) execute "test2.html" return
Il affiche l'écran suivant: " /> Un clic sur "Autre bouton" génère le code HTML dans le fichier test2.html qui se charge automatiquement dans le browser. Voici le résultat: " /> Et voici le code HTML généré pour cette fenêtre: - Code:
-
<!DOCTYPE html> <html> <!-- Généré le 08/06/2014 16:36:54 --> <!-- Par KGF.dll --> <!-- fonction BuildHtmlFromWindow -->
<head> <title>Test conversion Form</title> </head> <body>
<form> <fieldset style="position: absolute; top: 0px; left: 0px; width: 600px; height: 480px; background-color: silver"> <legend>Test conversion Form</legend> <fieldset style="position: absolute; top: 150px; left: 30px; width: 200px; height: 200px; background-color: silver"> <fieldset style="position: absolute; top: 50px; left: 20px; width: 150px; height: 120px; background-color: silver"> <button id="button1">Autre bouton</button> <script> document.getElementById("button1").onclick = function(){alert("Clic sur bouton button1") } </script> </fieldset> <input type="text" style="position: absolute; top: 20px; left: 20px; width: 117px; height: 17px; " value=""> </fieldset> <textarea style="position: absolute; top: 40px; left: 50px; width: 181px; height: 85px; "> </textarea> <button id="button2">Un bouton</button> <script> document.getElementById("button2").onclick = function(){alert("Clic sur bouton button2") } </script> </fieldset> </form> </body> </html>
Question:Est-ce que cette fonction peut avoir un intérêt pour vous ? Est-ce que vous voyez un intérêt à utiliser Panoramic pour dessiner l'image d'une page Web, et de générer le code HTML ensuite ? Si oui, je pousserai cette fonction plus loin, avec plus d'objets, la gestion d'autres évènements, les attributs graphiques etc. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: V3.08 du 08/06/2014 - nouvelle fonction BuildHtmlFromWindow Dim 8 Juin 2014 - 17:59 | |
| Je n'ai pas tout compris honnêtement, mais oui bien sûr, c'est très intéressant de pouvoir générer des pages HTML depuis Panoramic.
C'est l’intérêt par exemple du programme de Cosmos70.
Après avec la puissance des fichiers, on peut générer des pages très facilement.
Avec ces éditeurs, on pourrait même faciliter la mise à jour du site du mag pour qu'en ajoutant juste les fichiers dans les répertoires qui vont bien et que ça mette à jour les pages tout seul, mais bon ce n'est qu'une idée. | |
| | | Invité Invité
| Sujet: Re: V3.08 du 08/06/2014 - nouvelle fonction BuildHtmlFromWindow Dim 8 Juin 2014 - 18:59 | |
| Ta fonction m'interpelle. J'ai eu une idée similaire en faisant mon programme, et je ne sais plus pourquoi, et pire, comment. Et maintenant en voyant ce que tu fais, je ne sais plus pourquoi je voulais faire cela, et l'utilité. Cela me reviendra peut-être. Donc cela doit avoir un intérêt.
J'ai voulu testé, mais j'ai aussi oublié qu'il fallait aussi téléchargé la dernière version. Décidément, ma tête, où est-elle aujourd'hui?
Dis nous ce à quoi tu penses en faisant cela.
En mettant au point mon bouton télécharger, j'ai constaté à un moment, qu'on pouvait exécuter en direct un programme Panoramic (sauf Chrome chez-moi), si on avait préalablement défini Panoramic.exe comme programme par défaut dans Windows. Cela marche pour les programmes de Bignono et JL35 qui sont sur mon site à 'contribution'.
En faisant mon programme, mais cela n'avait pas de sens pour mon site que je veux static, j'ai essayé d'imaginer si ce bouton ne pouvais pas servir justement pour communiquer. Je n'ai pas poussé le raisonnement très loin, c'était pas le but pour moi. Est-ce que tu vois une chose de ce genre? |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V3.08 du 08/06/2014 - nouvelle fonction BuildHtmlFromWindow Dim 8 Juin 2014 - 23:10 | |
| Bon, on va prendre les choses dans l'ordre.
Ce que j'ai fait, c'est pour le moment un simple exercice de style. Comme vous le savez, j'ai un site internet, et il est réalisé par la version gratuite d'un logiciel professionnel, XWebDesignor. C'est très puissant, entièrement WYSIWYG, non limité en nombre de pages, avec des inclusions de codes HTML, Javascript et autres, et tout et tout. Et je ne vais pas réinventer la ficelle à couper le beurre - pas question à moi tout seul de faire concurrence à un produit opérationnel, puissant et efficace.
Donc, l'intérêt est ailleurs. Je vois de plus en plus souvent des "applications Web", c'est à dire des applications dont l'interface visuel est une page HTML utilisable par un simple browser internet, et qui accède les données disponibles en arrière plan. Bien sûr, je pourrais utiliser les outils standard générant du PHP. Mais dans ce cas, je devrais installer un serveur Apacheu similaire, comme WAMP par exemple, ainsi qu'un système de basede données de type SQL - l'usine à gaz, quoi.
Non. Ce que je voulais, c'est d'avoir un programme Panoramic avec une interface visuelle HTML. Je suis un hérétique, n'est-ce pas ? Le point fort de Panoramic étant justement la facilité de conception d'une interface visuelle, pourquoi aller voir ailleurs ? Eh bien, c'est pour intégrer mon application dans un ensemble de visuels, applications et recherches accessibles sur un browser, en lien avec des sites web ou non. Ne pas avoir à sortir de l'environnement Firefox, par exemple, et par de simples raccourcis, charger une fénêtre donnant accès à une application locale.
Voilà pour l'idée de départ. Concernant la réalisation, cela suppose de faire un certain nombre de choix. D'abord et avant tout, il faut que le GUI en HTML soit compatible avec ce que Panoramic sait faire. Et c'est pourquoi j'ai choisi la conception du visuel par Panoramic (et à terme, par mon IDE générant du Panoramic). Et à partir de là, on génère une page HTML avec (approxiamivement) le même graphisme, et avec des évènements on_click, on_change etc qui déclenchent les routines Panoramic correspondantes. donc, savoir gérer les évènements des objets HTML par des fonctions en Java-Script, générées dans la page HTML et adaptables après génération.
C'est cette phase qui est démontrée par la nouvelle fonction et le programme de démo posté ci-dessus. Un programme très simple qui auto-génère son interface GIU en HTML et le lance automatiquement dans le browser, pour vérification. Le fichier HTML généré est modifiable ensuitge à volonté. Ceci démontre la faisabilité du concept à ce niveau. Et comme je génère le code HTML d'une fenêtre dont je passe le handle en paramètre, cela peut alors être une fenêtre de n'importe quel programme, Panoramic ou non.
L'étape suivante est la conceptioin d'un mécanisme client/serveur entre la page HTML et un programme Panoramic en arrière-plan. J'ai une certaine expérience dans ce genre de procédures, et je pense la chose réalisable sans passer par des efforts démésurés. Et j'aurai du coup une applcationmulti-utilisateur, car les requêtes du client (page HTML) vers le serveur (programme Panoramic) pourront être émis de plusieurs écrans ou postes de travail sur un réseau IntraNet, voir même sur un réseau ExtraNet si le logiciel de communication correspondant est installé.
J'ai beaucoup travaillé sur la notion d'évènement en Panoramic. Et je sais déclencher un évènement dans un programme Panoramic à partir d'un programme externe, que ce soit par une DLL ou un programme entièrement résident dans un process extérieur. Et ce mécanisme, couplé au système de messages Windows que commence à bien maîtriser également, me permettra d'échanger des informations entre ma page HTML et le serveur en Panoramic, tout en identifiant l'origine de chaque requête.
Voilà un peu le schéma dans lequel se situe le petit essai que j'ai posté aujourd'hui. Je sais que cela me conduit à assimiler de nouveaux domaines. HTML en est un, car pour le moment, malgré mon site qui existe depuis quelques années, et grâce à mon bel outil XWebDesignor, je n'ai pas eu à mettre les mains dans le cambouis. Cette fois, c'est différent, et je progresse vite. Il faut aussi assimiler, au moins partiellement, JavaScript et le langage CSS, du moins pour la partie intégrée dans la page HTML. Rien d'insurmontable.
Mais, en fait, je ne veux pas me cacher derrière mon petit doigt: ce qui me passionne vraiment, c'est de défi technique. Pour la communication inter-programmes, je l'ai relevé depuis longtemps, et je l'ai rendu accessible dans KGF.dll. La partie GUI visuel en HTML est mon sujet actuel, et vous en voyez une maquette exécutable. Lier les deux sera l'affaire de quelques lignes en JavaScript que je ne doute pas pouvoir réaliser. Le grand avantage, c'est de pouvoir utiliser la gestion de fichiers Panoramic partir d'une page HTML, y compris les extensions que j'ai apportées avec la gestion des fichiers binaires à enregistrement de longueur fixe, et même mon système BDR. Tout devient possible. | |
| | | Invité Invité
| Sujet: Re: V3.08 du 08/06/2014 - nouvelle fonction BuildHtmlFromWindow Lun 9 Juin 2014 - 0:06 | |
| Je viens de télécharger kgf, et ça fonctionne. Je ne sais combien de fonctions sont faites.
Je sais que cela a un intérêt, et ce n'est pas pour me montrer intéressant (j'ai plutôt tendance à faire le contraire), mais j'y avais pensé, sans me rappeler le pourquoi de ce moment là. Je pense à beaucoup de choses, mais je note rarement, car je sais que ma vie n'est pas l'ordinateur, mais le reste, donc cela restera aux oubliettes pour moi. Donc je confirme, cela a un intérêt. Même si cela ne se voit pas réellement pour l'instant, le concept, il faut l'intégrer, et c'est trop neuf pour vraiment avoir une opinion.
Ce qui serait bien est de pouvoir le faire depuis une page html, mais normalement c'est en lecture seul.
Oui je pense à une chose, c'est par exemple de pouvoir représenter une figure en construction, comme tous les essais de Papydall ou Jean_debord avec les fractales. Actuellement on ne peut montrer que des images, mais à ce que tu penses, est-ce qu'on peut avec ton système, montrer une courbe en évolution, avec des edits modifiables, pour modifier les courbes? Si c'est le cas, je pense qu'il va y avoir des réponses positives. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V3.08 du 08/06/2014 - nouvelle fonction BuildHtmlFromWindow Lun 9 Juin 2014 - 0:28 | |
| C'est parfaitement envisageable, Cosmos70. Chaque modification d'un champ EDIT provoquera la mise à jour du dessin, si tel est l'objectif.
Mais attention: j'ai bien parlé d'un système de type IntraNet. Ceci veut dire qu'un programme serveur en Panoramic est exécuté localement, sur l'ordinateur sur lequel tu te trouves (ou sur un serveur local). Cela ne peut pas s'appliquer sur quelque chose qui devrait tourner sur un autre ordinateur ailleurs que le Web. Cela ne servira à rien, par exemple, de faire tourner un programme sur mon site internet à partir de ton ordinateur, et le commander par une page HTML dans ton browser. D'une manière ou d'une autre, tu installes le programme serveur sur ta machine, mais tu le pilotes avec ton browser.
Mais le grand avantage, c'est que tu peux changer l'interface graphique sans toucher qu programme serveur ! L'adapter à une autre résolution de l'écran, supprimer quelques champs pour simplifier dans des cas particuliers, ajouter des champs pour pour construire plus facilement les paramètres - tout cela est possible sans avoir à intervenir dans le source du programme serveur, tant que les fonctions restent les mêmes.
Si tu as, par exemple, un champ "Nom" dans lequel tu saisis une information du type: "Nom de naissance, Nom d'épouse, Pénom" séparés par des virgules. Maintenant, tu peux vouloir effectuer un contrôle particulier et saisir séparément ces 3 informations. Dans la technologie que je propose, il suffit de rendre le champ d'origine invisible, d'ajouter 3 nouveaux champs, puis charger le champ invisible avec une combinaison des contenus des 3 nouveaux champs. Tout ça en HTML, sans même ouvrir un éditeur Panoramic ni toucher au sources du serveur. Voilà un des enjeux. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: V3.08 du 08/06/2014 - nouvelle fonction BuildHtmlFromWindow Lun 9 Juin 2014 - 1:27 | |
| C'est très intéressant et les applications possibles sont énormes puisque l'on entre dans l'interface web / programme local client / programme serveur => Applications possibles: Jeux multi-joueurs (des dames en passant par les jeux de rôles, etc ...), tous les programmes liés à une base de données unique (réservations, commandes de produits, .... mais aussi base de connaissance, etc ...) | |
| | | Invité Invité
| Sujet: Re: V3.08 du 08/06/2014 - nouvelle fonction BuildHtmlFromWindow Lun 9 Juin 2014 - 12:31 | |
| J'ai fait un teste que j'ai mis sur mon site, vu que c'est un teste pour être vu en html. Il est dans astuce et c'est provisoir: testeChez moi avec Chrome ça ne fonctionne pas, mais avec Firefox et I.E., oui. En rapport avec ton idée, quand penses-tu?. Y-a_t'il pas moyen d'inclure cette possibilité sur internet? |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: V3.08 du 08/06/2014 - nouvelle fonction BuildHtmlFromWindow Lun 9 Juin 2014 - 14:12 | |
| Au boulot avec Chrome, ça marche. (Avec IE aussi d'ailleurs ) | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 10 Juin 2014 - 10:57 | |
| - Jicehel a écrit:
- Avec ces éditeurs, on pourrait même faciliter la mise à jour du site du mag pour qu'en ajoutant juste les fichiers dans les répertoires qui vont bien et que ça mette à jour les pages tout seul, mais bon ce n'est qu'une idée.
Ce n' est pas aussi simple. La partie que peut gérer un éditeur wysiwyg, l' interface est déjà faite. Pour ce que tu dis, il faudrait d' autres scripts et ce tourner vers le php. malheureusement je ne maitrise pas du tout ce langage... Ceci dit, je regarde avec beaucoup d' attention ces fonctions et le travail de cosmos70 qui me donnent des idées même si je ne peux les mettre en application dans l' immédiat. | |
| | | Contenu sponsorisé
| Sujet: Re: V3.08 du 08/06/2014 - nouvelle fonction BuildHtmlFromWindow | |
| |
| | | | V3.08 du 08/06/2014 - nouvelle fonction BuildHtmlFromWindow | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |