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

Contribuez Delphi Discussion :

Composant Tree non-visuel et génération HTML à partir du DFM


Sujet :

Contribuez Delphi

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Informaticien retraité
    Inscrit en
    Mars 2010
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 364
    Billets dans le blog
    1
    Par défaut Composant Tree non-visuel et génération HTML à partir du DFM
    J'ai cree un composant non-visuel gérant un arbre logique selon le modèle de TTreeView, mais sans dépendances VCL, sous forme d'une classe sans être dérivé d'un autre composant.

    Je l'ai nommé TTree. Un tel arbre est composé de noeuds sous forme d'un composant sous forme d'une classe non dérivée, nommé TNode.
    un TTree peut contenir 1 ou plusieurs noeuds de premiers niveau (racines ou root). Chaque noeud, racine ou pas, peut avoir des noeuds enfant (child nodes) et ainsi de suite. Il y a des méthodes pour naviguer dans cette structure.

    On peut aisément imaginer d'autres méthodes, mais il y a déjà un jeu suffisamment complet pour une première application, un peu comme un "proof-of-concept":
    c'est la génération d'une page HTML à partir d'un fichier DFM (en mode texte, mais la conversion d'un fichier en mode binaire est facile). Le résultat s'affiche dans un browser et reproduit l'image de la fenêtre Delphi.

    Ce convertisseur est implémenté sous forme d'un composant, également non visuel, non dérivé d'un autre objet. Je l'ai nommé TDFMtoHTML.

    L'ensemble de ces 3 objets (TNode, TTree et TDFMtoHTML), est contenu dans une seule unité Delphi. Le tout a été développé avec Dephi 6 Personal Edition, et le code HTML généré est testé et opérationnel avec Firefox, Edge et Opera, indifféremment. Le code HTML utilise du code CSS inline pour adapter les éléments HTML. Pas de JavaScript.

    Certes, pour le moment, seuls quelques objets visuels Delphi sont traités:
    TForm <html>
    TLabel <label...
    TPanel <fieldset...
    TGroupBox <fieldset... with <legend>
    TButton <button...
    TMemo <textarea...
    TTreeView <textaera... just a place holder
    Seules quelques propriétés des objets sont traités:
    Name
    Caption
    Top
    Left
    Width
    Height
    Actuellement, seule la police Arial est générée, mais la propriété Font.Name est reconnue, à titre d'exemple.

    Petite précision:
    Ce projet n'a en aucun cas l'ambition de devenir un générateur de page HTML plein et entier. ll m'a servi a tester ma structure arborescente créée à partir d'un DFM, et de l'utilisant ensuite de façon récursive de produire du HTML. Comme dit au début, c'est un "proof-of-concept".

    Le projet contient deux unités:
    - DFMtoHTML.pas avec les 3 objets
    - Unit1.pas contenant le programme principal utilisant ces 3 objets.

    Je joins une archive ZIP avec le projet complet y compris son exécutable. Il comporte dans une seule fenêtre, 4 panels:
    - affichage du fichier DFM dans un TMemo
    - affichage de l'abre logique TTree chargé dans un TTreeView
    - affichage du code HTML généré dans un TMemo
    - les boutons de commande correspondant à chaque phase (chargement DFM, construction de l'arbre, génération du HTML)

    Le code DFM par défaut est celui du propre programme de démo, mais un bouton permet de créer dynamiquement une TForm avec quelques objets, et un autre bouton permet de charger générer le DFM de cette TForm dynamique et de le charger.

    Voici à quoi ressemble le programme, ayant chargé le code DFM de sa propre fenêtre, ayant généré l'arbre puis le code HTML:
    Nom : aa1.png
Affichages : 272
Taille : 41,5 Ko

    Je serais heureux de connaître votre avis sur cette petite réalisation. Merci d'avance d'y jeter un coup d'oeil.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Génération des pages HTML à partir d'un programme.
    Par marcandre dans le forum Langage
    Réponses: 6
    Dernier message: 26/03/2007, 17h13
  2. Réponses: 6
    Dernier message: 12/09/2006, 17h31
  3. Creer un composant non visuel(Timer) dans une DLL
    Par hugobob dans le forum Composants VCL
    Réponses: 1
    Dernier message: 06/06/2006, 16h20
  4. Je recherche un composant Tree non visuel, structure mémoire
    Par bambino3996 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 05/09/2005, 17h03
  5. Destructeur pour un composant non visuel
    Par sfpx dans le forum Composants VCL
    Réponses: 4
    Dernier message: 27/08/2005, 02h14

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