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 :

TRichEdit et OEM_CHARSET


Sujet :

Composants VCL Delphi

  1. #1
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut TRichEdit et OEM_CHARSET
    Bonjour,

    J'ai toujours mon pb de police avec un richedit.

    Pour mieux expliquer : voici ce que j'ai à l'écran dans l'edi (et c'est idem en execution) :



    j'utilise, pour le memo1 et le richedit1 la police Courier New en Charset OEM_CHARSET par contre, apparemment le richedit ne reconnait pas l'OEM_CHARSET et le remplace par DEFAULT_CHARSET

    Est-ce bien ça?

    Quelqu'un aurait une solution?

    merci[/img]

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 43
    Points : 52
    Points
    52
    Par défaut
    çà ne dépend pas du système d'exploitation les charsets ? Enfin çà ne devrait pas exister sur un composant et pas sur l'autre ...

    Aide Delphi :
    OEM_CHARSET 255 Dépend de la page de code du système d'exploitation.

    DEFAULT_CHARSET 1 La fonte est choisie en se basant *seulement sur le nom et la taille*. Si la fonte décrite n'est pas disponible sur le système, Windows lui substituera une autre fonte.
    à mon avis faire ton prog avec çà c'est pas une bonne idée vu que çà changera en fonction de la machine sur laquelle tu vas faire tourner ton prog... Et DEFAULT_CHARSET, c'est visiblement pas çà ...

    Essaye ANSI_CHARSET ? Ou regarde le nom du charset 'par défaut' de ta version de windows...

  3. #3
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    merci, mais quelque soit le charset utilisé dans le richedit, je n'obtiens pas ce que je veux

    en regardant avec charmap.exe, les semi-graphiques font partie du jeu de caractéres DOS Europe Centrale mais pas du jeu de caractéres Windows Europe Centrale

    le problème me semble venir du richedit qui n'accepterait que les jeux de caractères Windows (mais je n'en suis pas sur car si je copie un de ces caractères par Charmap et que je le colle dans mon richedit, celui-ci est bien affiché ...)

  4. #4
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    en fait j'ai l'impression qu'il faudrait que je convertisse memo1.text d'oem en ansi pour le mettre dans richedit1 mais j'avoue que je trouve pas comment faire ...

  5. #5
    Membre habitué Avatar de gord's
    Inscrit en
    Avril 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 115
    Points : 127
    Points
    127
    Par défaut
    tu as reagardé OemToChar et CharToOem ?

  6. #6
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    je trouve pas oemtochar dans l'aide delphi 7 donc si quelqu'un avit un exemple...

    j'ai trouvé sur un site et donc j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    procedure TForm1.Button1Click(Sender: TObject);
    var strs, strd:string;
    begin
      strs := 'ÄÅÄÄÄÄÄÄÄÄÄ';
      OEMtoChar(PChar(Strs), PChar(Strd));
      showmessage(Strd);
    end;
    à l'exécution j'ai une exception : Access violation at address 77D26305 in module 'user32.dll'.Write of address 00404311.

    ça dit quelque chose à quelqu'un?

    j'ai fait une connerie?

  7. #7
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Citation Envoyé par chtiot
    j'ai fait une connerie?
    Oui, tu as oublié d'initialiser la chaine qui doit recevoir la version non-OEM.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TForm1.Button1Click(Sender: TObject); 
    var strs, strd:string; 
    begin 
      strs := 'ÄÅÄÄÄÄÄÄÄÄÄ'; 
      SetLength(strd, Length(strs));
      OEMtoChar(PChar(Strs), PChar(Strd)); 
      showmessage(Strd); 
    end;

  8. #8
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    merci a toi pierre,

    ça marche maintenant sans exeption et mes caractères sont convertis mais de semi graphiques à leur équivalent texte (le + pour le signe Filet fin vertical et horizontal, - pour le Filet fin horizontal ...)

    je ne sais donc toujours pas quoi faire

  9. #9
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    Mon problème est résolu, en fait j'affectais mal ma police dans le richedit

    mais je finirai un jour par devenir bon (jamais autant que nono40 ou Pierre catelain ou autres experts que je ne citerai pas)

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

Discussions similaires

  1. Comment savoir si les ScrollBar sont visibles sur un TRichEdit ?
    Par vanquish dans le forum Composants VCL
    Réponses: 2
    Dernier message: 16/10/2003, 10h28
  2. TRichEdit défilement de texte automatique
    Par bloops dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/06/2003, 11h13
  3. [Composants] TRichEdit: Une police pour chaque ligne
    Par naili dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/03/2003, 15h59
  4. TRichEdit Position du caret
    Par AlainR dans le forum Composants VCL
    Réponses: 6
    Dernier message: 25/10/2002, 10h42
  5. TMemo et TRichEdit
    Par Invité dans le forum C++Builder
    Réponses: 6
    Dernier message: 09/10/2002, 20h37

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