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 :

Comment ajouter une petite image dans un Trichedit.


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 321
    Par défaut Comment ajouter une petite image dans un Trichedit.
    Bonjours,
    Je cherche quelque chose de très simple comment mettre une petite image dans un Trichedit en appuyant sur le bouton1. Le format de l'image jusqu'a présent je ne l'est pas encore choisi, par exemple récupérer l'image sur le disque dure et l'insérer par le bouton1 au texte a la cosition du curseur!
    Ce que je ne sais pas comment récuperer l'image pour l'inserer dans le text!
    Merci pour me faire guider, salutation et bonne journée.

  2. #2
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    C'est hyper-compliqué à faire et en plus, une fois fait, tu as l'air fin puisque si tu sauvegarde ton RichEdit, ton image n'est pas sauvegardée. Celà est dû au fait qu'un TRichEdit delphi ne gère que la version 1.1 du RTF (en fait, ça dépend de la dll windows utilisée par le composant).

    Bref, pour le faire, il te faut un composant qui gère le RTF en version 2 ou supérieure (donc qui s'adresse à la bonne dll), dans la JVCL, il y en a un.

  3. #3
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Si c'est vraiment "quelque chose de très simple" qui est recherché voiçi une suggestion genre système "D":

    1) Fixer la marge, par exemple de droite, du RicheEdit à une valeur au moins égale à la largeur de la "petite image".

    2) Puis faire en sorte que Click-bouton1 provoque :
    - l'apparition (création dynamique, ou par visible:=true) d'un tImage dans la marge précitée et son positionnement au même niveau que celui du curseur,
    - et le chargement du tImage à partir du fichier image sur le disque dur.

    3) Puisque la sauvegarde du RichEdit ne sauvegarde pas cette image mais qu'elle sauvegarde du texte il est possible d'utiliser la 1ère ou la dernière ligne du texte du RichEdit pour y marquer en vue de sa sauvegarde au moins le nom du chemin d'accès au fichier image (C:\...\image.bmp) de chacune des images. Ces chemins peuvent être écrits avec des caractères dont la couleur est la même que celle de l'arrière-plan du RichEdit si on veut les cacher à l'oeil, mais l'ordi saura les reconnaître ...

    Le texte et ces chemins étant ainsi sauvegardé il est ensuite possible lors d'un re-chargement du fichier *.rtf de retouver le nom des fichiers-image et avec eux de recharger les images automatiquement comme des "pièces-jointes".

    J'ai utilisé cette parade dans une petite appli sauf qu'au lieu de placer mes vignettes dans la marge je les laisse carrément se superposer au texte.

    Si le principe de cette parade vous convient on pourra rentrer dans le détail par la suite.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  4. #4
    Membre confirmé Avatar de gregcat
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 155
    Par défaut
    tu peux le faire avec le TJvRichEdit de la bibliotheque JEDI-VCL Gratuite, ca à l'air de fonctionner correctement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    31
    32
    33
    34
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, JvExControls, JvEditorCommon, JvUnicodeEditor, jpeg, ExtCtrls,
      StdCtrls, JvExStdCtrls, JvRichEdit;
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Image1: TImage;
        JvRichEdit1: TJvRichEdit;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      JvRichEdit1.InsertGraphic(image1.Picture.Graphic,true);
    end;
     
    end.

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 321
    Par défaut
    Bonsoir,

    Avec la VCL TJvRichEdit c'est super, mais jusqu'a présent je n'est pas encore installer de composant sois disant externe. Ce que j'ai en tête c'est que dans 4 ou 5 années est-ce que tout sera est encore compatible avec les nouveaux system d'exploitations! (..être moins d'épandant d'autres...) j'ai peut-être peur des comportements étranges... je ne sais pas mais j'ai plus tendance à rester avec les composants de Delphi ou.., vous me enrichissez dans ce domain, merci pout tout, qui m'a bien élargie l'angle de m'a vision. Donc si je comprends bien DELPHI n'est pas capable de gérer simplement, un éditeur avec des Images. Je suis très preneur avec le composant TJvRichEdit, en voyant la simplicité du code ...mais je suis aussi très intéresser à la propose de Gilbert Geyer, si tu as le temps à m'expliquer un peut plus avec des exemples de programmation que je puisse faire des testes, sinon je pense je serais un peut perdu.

    Merci beaucoup à tous, salutations et bonne soirée.

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Ok pour des exemples de code, mais avant de me lancer sur des fausses pistes j'ai des questions à poser concernant les besoins.

    1) Faut-il pouvoir placer une seule ou plusieurs petite(s) image(s) dans la marge du texte ???

    2) L'utilisation du RichEdit en question est-elle destinée à un usage du type "Catalogue" ou "Notice d'utilisation" c'est à dire que le contenu du RichEdit est figé par le concepteur qui laisse à l'utilisateur uniquement la possibilité de lire sans pouvoir modifier ni le texte ni les images ???

    2bis) Où à l'inverse est-ce que texte+image(s) doivent pouvoir être modifiés par l'utilisateur du logiciel ???. (car dans ce cas il faut gérer autrement le lien qui relie le texte à l'image, dans l'exemple que j'ai donné dans mon msg précédent l'utilisateur risquerait de détruire ce lien marqué dans la même couleur que celle de l'arrière-plan pour le cacher)

    3) Le logiciel doit-il pouvoir gérer toute une collection de fichiers "texte+images" ???
    3.1) En chargeant un seul de ces fichiers à la fois ???
    3.2) Ou en chargeant tous ces fichiers en un seul coup ???

    4) Toute autre info décrivant les besoins en termes fonctionnels d'utilisation seront les bien-venus.

    A la prochaine.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/09/2006, 10h14
  2. [WebForms][1.1] Comment mettre une colonne image dans un datagrid?
    Par totoche9 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 02/07/2006, 13h49
  3. Réponses: 1
    Dernier message: 26/05/2006, 11h11
  4. Comment positionner une petite boite dans une boite ?
    Par hackrobat dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 25/10/2005, 09h37

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