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

Delphi Discussion :

Editeur de texte multi-onglets et SynEdit


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Par défaut Editeur de texte multi-onglets et SynEdit
    Bonjour,

    J'ai développé un petit éditeur de texte pour programmer (un peu ressemblant à DevPHP pour ceux qui connaissent mais en beaucoup moins développé). J'ai d'ailleurs vu que c'est à la mode en ce moment
    J'ai réussi jusque là à me débrouiller avec l'aide , la faq et le forum (merci la fonction rechercher ) mais maintenant que je suis à la phase paufinage il me manque quelques petites choses que je n'arrive pas à faire.

    J'utilise les composants de la collection SynEdit pour la saisie du texte et la coloration syntaxique. La touche del n'a pas d'effet si on ne sélectionne pas de caractères, je ne trouve pas d'options qui corrige cela. J'ai aussi testé sur un RichEdit : même comportement. Quelqu'un aurait-il une idée ? Plus simple que de reprogrammer la fonction sur le OnKeyPress ?

    Ensuite j'utilise le composant PageControl pour gérer les onglets. Y a-il un moyen d'afficher sur l'onglet lui-même à côté de son 'caption' un bouton pour effectuer la fermeture de l'onglet ?
    Autre problème que je rencontre, j'aimerais que le caption de la page soit en rouge (enfin juste la police). Mais je n'ai rien trouvé sauf le redessinage du caption en lui-même. Y a t-il une méthode plus rapide ? Peut du côté de la librairie JvCL avec le composant JvTabDefaultPainter

    Merci d'avance

    Jo.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 218
    Par défaut
    Bon normalement ya qu'une question à la fois mais là y en quelques unes, t'aurais pu les numéroter pour que ce soit plus facile de te répondre.
    1) - Touche Del ne fonctionne pas sans sélection : je viens de tester sur un richedit ca ne pose aucun problème, la touche del fonctionne bien. Autrement il y a une demo livrée avec Delphi 6 sur le richedit avec un éditeur de texte basique pour tester. Ton problème ne serait pas plutot du à une méthode appelée sur la fenêtre mère si tu as une application Mdi. Dans ce cas c'est peut-être tout simplement la propriété KeyPreview qui te pose problème...
    Autrement vu que tu créés un éditeur tu as peut-être codé une action "couper" qui code le couper sur le suppr au lieu du Shift Suppr.

    2) - A ma connaissance, il n' y a pas de composant de base(Free) qui permette d'afficher un bouton à droite du libellé sur un onglet(ptet sur les versions sup à Delphi 6), pour la gauche il suffit de brancher une imagelist. Il est cependant tout à fait possible de dessiner une image à l'endroit que tu souhaites avec l'évènement OnDrawTab du pagecontrol en placant OwnerDraw à false), par contre pour l'effet bouton c'est pas gagner. Pour savoir à quel endroit l'utilisateur à cliquer il "suffit" de déterminer la position de la souris sur ton onglet. Autrement tu peux poser un pagecontrol, puis pour utiliser la place perdue à droite des onglets, placer par exemple un tabcontrol avec un seul onglet qui te permettra sur un click de fermer l'onglet visible, ca prend pas de temps(visuellement c'est pas top mais ca coute pas cher).

    3) pas d'idée hormis ptet en utilisant la méthode DrawCaption de la forme mais je ne l'ai jamais utilisé et je ne sais pas ce qu'il faut lui passer comme paramètre.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Par défaut
    Merci de ton aide

    Pour le 1) J'ai testé sur une nouvelle application avec un RichEdit et avec un SynEdit : la touche del a un fonctionnement normal. Donc le comportement bizarre vient bien de mon application. Je n'ai pas codé de couper spécial j'ai même regardé mais il ne se passe vraiment rien avec la touche del si le texte n'est pas sélectionné. Ce n'est pas une application MDI.
    Je vais encore chercher mais jusqu'à maintenant j'ai toujours pas trouver

    Jo.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Par défaut
    La touche suppr ne fonctionne pas du tout dans mes SynEdits

    J'ai cherché dans les sources je ne trouve pas d'où vient ce comportement de la touche del qui ne supprime que si on sélectionne du texte (et encore cela vient d'une action par défaut (EditDelete1) que j'ai rajouter dans mon menu. Si je la supprime la touche del n'a plus aucun effet. Je ne vois vraiment pas de quoi ça peut venir.

    Y aurait un moyen de trouver ce qui détourne le signal de la touche ? Ou autre afin que je trouve d'où vient se problème ?

    Je vais essayer de tester les OnKeyUp ou OnKeyDown de certains composants pour essayer de trouver. Si vous avez une idée n'hésitez pas

    Je précise que je n'ai ce comportement qu'avec ce dev.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 218
    Par défaut
    Bonsoir,
    Pour régler ton pb tu peux essayer les méthodes qui suivent :
    1-Certains composants peuvent "capter" une touche particulière, par exemple un bouton avec l'option default, forcera la touche entrée à déclencher le click du bouton. Vérifie dans un premier temps qu'un composant de ce type ne trapperait pas la touche Suppr. (navigateur ou autre comme je ne connais pas la suite synedit et ce que tu as posé comme composant sur ta fenêtre ou les actions).
    2- Vérifie que ce n'est pas le code d'un des évènements qui ne provoquerait pas l'anomalie. Pour cela débranche tous tes évènements et rebranche les un par un.
    3- Essaie de capter la touche suppr sur la forme en passant le keypreview à true pour que tu puisses l'intercepter dans le formkeypress, formkeyup ou formkeydown avant l'inherited. Si tu n'arrives pas à la capter, il est probable que ce soit un composant du point 1 qui la trappe ou une action.
    Sinon fait du pas à pas (F7) pour voir dans quels évènements tu passes par la suite et inclus si besoin les chemins de la vcl et de synedit dasn tes chemins de recherche..
    4- Si le programme ne s'arrête pas sur le formkeydown, tu peux essayer d'enlever un par un les composants, en commençant par ceux qui te semblent les plus suspects.

    Bien entendu tu fais une sauvegarde avant toutes ces manips et une fois que tu as localisé d'où provient l'erreur tu ne corriges que ce qui pose pb sur ta sauvegarde...

    Bon courage, en espérant que cela puisse t'aider.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Par défaut
    Bon aprés une longue recherche j'ai trouvé.

    L'action Standard TEditDelete de la catégorie Edition était responsable de mon problème avec la touche del. Une fois complétement supprimé tout est redevenu normal.

    Merci pour l'aide

    Et sinon pour le reste de mes questions je crois que j'ai trouvé ce que je voulais en fouillant dans la Jedi VCL

    Aller hop résolu.

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

Discussions similaires

  1. [Appli Fini ou presque ;)] Editeur de texte multi-onglets
    Par Jorael dans le forum Mon programme
    Réponses: 9
    Dernier message: 16/07/2007, 00h30
  2. Ajouter des onglets à mon editeur de texte
    Par diden138 dans le forum Delphi
    Réponses: 18
    Dernier message: 12/11/2006, 22h02
  3. [Composant] Editeur de texte
    Par fendavid dans le forum Général Java
    Réponses: 1
    Dernier message: 06/06/2004, 00h28
  4. [Kylix] [Kylix 3] Un editeur de texte ?
    Par drfreuderick dans le forum EDI
    Réponses: 2
    Dernier message: 14/03/2004, 02h33
  5. Quel EDI/editeur de texte preférez-vous ?
    Par Gandalf dans le forum Choisir un environnement de développement
    Réponses: 5
    Dernier message: 18/09/2003, 19h55

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