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

Langage Delphi Discussion :

Richedit et Enregistrement


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 228
    Points : 117
    Points
    117
    Par défaut Richedit et Enregistrement
    Bonjour,

    J'ai lu quelques posts concernant la manipulation de TRichEdit.
    Je désire enregistrer TRichEdit avec son formatage (police en gras, couleur, ...)
    L'enregistrement de ces données peut s'effectuer par un fichier .rtf.

    Par contre est-il possible d'enregistrer tout ceci dans un champ d'une base de données au lieu d'un fichier.

    Merci

    Edit : Je pense avoir posté ce message dans un mauvaix forum. Merci de le transférer dans Delphi/Composants

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Un SaveToFile en jouant sur la propriété PlainText pourrait aboutir à une solution ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 228
    Points : 117
    Points
    117
    Par défaut
    En fait, le programme enregistre des recettes.
    J'ai une table d'une BDD Access avec comme champs :
    ID
    Nom de la recette
    Catégorie
    Ingrédients de type Mémo
    Fabrication de type Mémo

    Ce qui m'intéresse, c'est de laisser à l'utilisateur le choix de formater le texte de "Ingrédients" et "Fabrication" qui serait chacun sur la Form dans un TRichEdit.

    Donc, si je comprend bien ta question ou ta réponse, ce serait d'enregistrer dans les champs de la table une référence propre à l'ID de la recette qui irait sauvegarder un fichier .rtf dans un sous répertoire.
    Pourquoi pas. Mais est-ce une méthode normal pour faire ce genre de programme ?

    Edit : Ce que je voulais savoir, c'est s'il était possible à une base de données de sauvegarder des données formatées. Apparement non !

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Dans ce cas, tu peux faire un SaveToStream et TBlobField.LoadFromStream ...

    Mais stocker trop de blobs ce n'est pas terrible, tout dépend tes possibilités, avec Paradox pour la santé de la base, un sous-dossier avec les fichiers serait plus prudent, avec MySQL, Oracle, ... le blob, ça tient la route, je maintiens une application qui stocke image, fichier, dfm, xml (zippé) dans des blobs et pas que des petits volumes

    Pour le champ blob, c'est du binaire, cela ne concerne aucunement la base de savoir comment le gérer, ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    rbh
    rbh est déconnecté
    Membre confirmé Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 381
    Points : 471
    Points
    471
    Par défaut
    Salut
    J'ai fait une classe qui hérite de TRichEdit pour les mêmes raison que toi.
    j'ai fait ces 2 fonctions:

    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
    function TMSRichEdit.GetTexteFormate: string;
    var
      MyStrStream: TStringStream;
    begin
      MyStrStream := TStringStream.Create('');
      Self.Lines.SaveToStream(MyStrStream);
      result := LeftStr(MyStrStream.DataString, Length(MyStrStream.DataString) - 1);
      FreeAndNil(MyStrStream);
    end;
     
    procedure TMSRichEdit.SetTexteFormate(Value: string);
    var
      MyStrStream: TStringStream;
    begin
      MyStrStream := TStringStream.Create(Value);
      Self.Lines.Clear;
      Self.Lines.LoadFromStream(MyStrStream);
      FreeAndNil(MyStrStream);
    end;
    Le tout enregistrer dans des champs memo d'un table access

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    sinon en standard, il y a le TDBRichEdit qui se connecte via un DataSource sur n'importe quel champ String ou Blob ... (le Edit et Post explicite sont nécessaire pour les modifications du formatage uniquement)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 228
    Points : 117
    Points
    117
    Par défaut
    Merci à tous les deux pour vos réponse.
    Citation Envoyé par ShaiLeTroll Voir le message
    sinon en standard, il y a le TDBRichEdit qui se connecte via un DataSource sur n'importe quel champ String ou Blob ... (le Edit et Post explicite sont nécessaire pour les modifications du formatage uniquement)
    J'avais testé ce compsant connecté à un champ mémo de la table access, mais sans résultat sur la sauvegarde du format. De plus, je n'aime pas trop utilisé les compo de base de données.

    Je vais tester les deux premières solutions :
    - des fichiers rtf en sous-dossier sur le disque
    - la classe de rbh

    Je vous tiens au courant

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 228
    Points : 117
    Points
    117
    Par défaut
    Bonjour,

    J'ai mis en place le système par fichier et tout à l'air de fonctionner très bien.

    J'ai testé la classe de rbh, mais sans succès. J'ai bloqué sur cette ligne
    MyStrStream := TStringStream.Create('');
    TStringStream n'accepte pas de string

    Merci encore

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

Discussions similaires

  1. [D7] Comment enregistrer le RTF d'un RichEdit dans une BDD
    Par Lung dans le forum Bases de données
    Réponses: 9
    Dernier message: 29/09/2006, 10h54
  2. Enregistrer un texte formaté RTF d'un RichEdit dans un Blob
    Par dem dans le forum Bases de données
    Réponses: 2
    Dernier message: 31/01/2005, 10h05
  3. Enregistrer un RichEdit dans un .Txt
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 06/08/2002, 11h52
  4. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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