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

Composants VCL Delphi Discussion :

Creer un editeur genre word simplifié


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Creer un editeur genre word simplifié
    Bonjour,
    Voila je voudrais creer un petit editeur melangeant dessins et texte mais sur un nombre de pages verticales non limité. En fait l'apparence exterieure d'un word par exemple mais avec très peu d'options.

    La question que je me pose est quel composant utiliser pour la surface de l'editeur, j'envisage un TImage mais si mon edition fait 50 pages la taille de celui risque d'être énorme !
    Y a t-il mieux comme composant sachant que toutes les données à afficher sont stockée dans une liste chainée d'objets decrivant ce qu'il y a dessiner a l'ecran (dessin & texte) ?

  2. #2
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Piste a approfondir :
    Un type "TPage" avec les informations du texte (Texte, Mise en page, Style, Images, etc ....)

    1 Tableau de TPages pour stocker ces infos

    3 TImages (Page courante, Page precedente et page suivante) sur lesquelles tu dessine la PAge i-1, i et i+1.
    Peut etre que 2 suffisent ..... vu que dans word seulement 2 PAges sont visible (en partie) a l'ecran.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,

    Le TRichEdit est asser limité, mais vous pouvez déja regarder si cela vous suffit (il y a une demo avec delphi).

    les composant RX avait aussi un Composant RichEdit, mais je ne l'ai plus utilisé depuis la version 4 ou 5 de delphi. A l'époque il était un peux plus puissant que le trichEdit (possibilité d'ajout d'image).

  4. #4
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Démo + sources de RxRichEdit : http://sub0.developpez.com/delphi/rximage.zip

    Je prévois de développer un tchat avec ce compo...
    Tu peux déjà voir quelques possibilités d'édition avec cette démo:
    http://sub0.developpez.com/delphi/rxdiag.zip

    Les fichiers supportés par RxRichEdit sont au format RTF...
    De retour parmis vous après 10 ans!!

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merci je regarde ça, le dernier exemple me parait bien sympa.
    Malgré tout je pense tout de même utiliser une solution derivée de la première réponse en utilisant eventuellement un bitmap plus grand que la surface à affichée pour les jonctions de pages.
    N'y a t-il pas plutôt interêt à utiliser un TPaintBox plutôt qu'un TImage ?

    Question subsidiaire car je ne suis pas (encore) pro en Delphi

    J'ai declaré une Form de 600 x 500 pixels par exemple.

    J'y pose mon TPaintBox et une status bar aussi car j'en ai besoin.

    Dans mon FormCreate je declare par exemple les dimensions de mon TPaintBox à 1000x2000 on va admettre que c'est la vue d'une page par exemple.

    C'est nickel j'ai des barres de defilement qui apparaissent et je peux gerer le tout dans mon OnPaint du TPaintBox pour afficher la partie qui m'interesse sauf ... que
    je ne vois plus ma status bar qui s'est fait engloberdans le defilement vertical alors que bien sur je souhaitais qu'elle se trouve sous la barre de defilement horizontale

    Y a pas moyen de l'isoler ? merci d'avance

    PS : J'oubliai je suis sous Delphi6 en application CLX

  6. #6
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    A Voir mais un simple "Panel" ou tout autre canvas ne ferait il pas l'affaire ?

    Les tImage sont bien mais plus acces vers le chargement et la manipulation d'images. Dnc tu vas te trimballer pleins de prop/Methodes qui te servent a rien.

    En fait pour dessiner tu n'as besoin que d'un canvas. Donc soit creer directement un objet TCanvas mais j'ai jamais fait et je ne sais pas si c'est facileent manipulable comme ca ... ou bien utiliser tout objets (les plus simple possible) usant un Canvas.

    LE TPanel avec un BevelInner/Outter a bvNone fait tres bien l'affaire.

    Remarque de derniere minute : Derive ton composant de TWincontrol ... Base de tout compos graphique (ou TControl je sais plus .. j'ai un doute) Bref celui qui implemente le Canvas.
    J'ai cree une Barre de navigation comme ca.

    Surcharge la methdoe "Paint" et ecris l'algo d'affichage de ta page.

    En tout cas ... Bonne chance !!
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  7. #7
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Honnêtement, pour avoir cherché assez longtemps le meilleur éditeur de document possible (en gratuit), je te conseil de regarder du côté de RichView et EdRichView. Les sources de ce composant sont fournies, tu pourras t'en inspirer et/ou les modifier à ta guise, enfin si tu ne veux pas réinventer la roue, parce-qu'autrement, je n'ose même pas imaginer le travail que tu devras réaliser... De plus, le chargement / traitement / affichage avec ce composant est très rapide, ce qui permet de l'utiliser avec des documents de grande taille. Avec ta méthode (TPaintBox), tu riques de ne pas avoir les performances au rendez-vous et beaucoups d'heures de travail perdues finalement. J'avais déjà pensé à développer mon propre support de document en utilisant le Canvas, mais j'ai vite abandonné l'affaire car j'y serais sûrement encore dessus aujourd'hui ! ^^

    Bon courage, à+
    [EDIT]Clorish, le TPanel ne possède pas de Canvas... [/EDIT]
    De retour parmis vous après 10 ans!!

  8. #8
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    [EDIT]Clorish, le TPanel ne possède pas de Canvas... [/EDIT]
    Effectivement ... j'ai deja rencontre ce pb la derniere fois que j'ai voulut l'utiliser ^^
    J'ai oublié ....
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,

    Si vous utiliser un canvasd'affichage pour stoker vos donner vous aurrez 2 problèmes.

    1° la taille d'un tel canvas est problèmatique en temps de resevertion de l'espace memoire et en "overflow" de la mémoire (essayer un TBitmap avec un width de 800 * 10000 par exemple).

    2° Problème d'échelle entre l'affichage et l'impression.

    Regarder les TMetaFile/TmetaFileCanvas. Pour le stockage c'est bien moins gourmand en mémoire, et l'on peut reporter le dessin sur la canvas que l'on veur (TBitma, Umprimante), à l'échelle désiré.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Je vais jeter un coup d'oeil sur les Tmetafile que je n'ai jamais utilisé.
    En fait j'aurais effectivement un besoin d'impression et surtout le pire un zoom au niveau de l'ecran.
    Je tiens juste a preciser car c'est assez important, que je n'ai pas d'edition au niveau du prog. ce n'est que de la visu et de l'impression, les données (graphiques et textes) sont issues d'un autre programme qui lui permet l'edition.
    En fait ca ressemblerai plus a un acrobatreader light qu'a un word.
    En tout cas merci pour vos conseils.

    EDIT : J'ai pas de TMetaFile dans QGraphics

  11. #11
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    LEs TMetafile sont ce qu'il y a de mieux ... en plus c'est la seulle methode pour arriver a coder un apprecu avant impression puis l'impression elle meme (enfin c'ets ce qu'on m'a dit le jour ou j'ai voulu le faire ;p)

    Par contre si t'est en CLX et qu'elles n'existe pas ... c pas cool pour toi ca :/
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    OK y a pas de TMetaFile mais y a des TDrawing, ça marche aussi bien visiblement vu mes premiers tests

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Integrer ou creer un editeur de contenu dans un site
    Par pitichamo dans le forum Général Conception Web
    Réponses: 10
    Dernier message: 14/10/2009, 18h40
  2. Creer un Index sous Word 2007 de manière simple!?
    Par polyphone dans le forum Word
    Réponses: 1
    Dernier message: 06/10/2008, 07h58
  3. creer un editeur de mail
    Par choubak dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/12/2007, 19h42
  4. creer un tableau sur word à partir de delphi.
    Par solitaire dans le forum Langage
    Réponses: 4
    Dernier message: 12/02/2006, 10h51
  5. [Conception] Créer un éditeur graphique de XML
    Par mickagame dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 30/11/2004, 12h46

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