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] Visualiser un texte vertical ?


Sujet :

Composants VCL Delphi

Vue hybride

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 45
    Par défaut [TRichEdit] Visualiser un texte vertical ?
    Bonjour.

    Je recherche à Visualiser (et à modifier) un texte vertical (Japonais, probablement avec une Fonte @), dans un composant TRichEdit (une liaison OLE avec le Word d'Office ne me convient pas).

    J'ai réussi avec Word 2003 a visualiser un texte de cette façon en changeant le language, et autres critères.
    Ce fichier ainsi sauvegardé, a été réouvert dans le WordPad, et le texte est toujours (à ma grande surprise, car celui-ci ne dispose pas d'options linguistiques) vertical.

    le Composant TRichEdit peut-il faire la même chose (j'ai essayé les Params ES_VERTICAL dans CreateParams, et les Options ECO_VERTICAL avec EM_SETOPTIONS-je crois- sans succès, et mes recherches sur le Message EM_USEATFONT me renvoie toujours sur le site de Microsoft)?

    S'il ne le peut pas, peut-on instancier la classe (dont j'ignore le nom) qui est utilisée dans le Wordpad de Windows ?

    Si oui, comment faire ?

    Je suis ouvert à toutes suggestion (soyez indulgents, je ne suis pas un professionel de la programmation).

    Merci de m'avoir lu.

    Amicalement,
    ARDILLER.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 45
    Par défaut ...Suite.
    J'ai un peuprogressé depuis mon post Original (qui n'a eu guère de succès...).

    J'ai réussi a créer un descandant de TCustomRichEdit, qui crée une instance de la Classe du WordPad de Windows.
    Mais je ne peut changer ses propriétés, ni affecter ses String dans l'EDI de Delphi (2005 Personellle).
    Peut-être me manque-t-il une maneuvre supplémentaire lors de la création du composant que j'ignore.
    Je vous le livre, en espérant des remarques ou des conseils qui pourraient me faire progresser.

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    unit VerticalEdit;
     
    interface
     
    uses
      Windows, SysUtils, Classes, Controls, StdCtrls, ComCtrls, RichEdit;
     
    type
      TVerticalEdit = class(TCustomRichEdit)
      private
        { Private declarations }
      protected
        procedure CreateParams(var Params: TCreateParams); override;
     
        { Protected declarations }
      public
        { Public declarations }
        constructor Create(AOwner: TComponent); override;
      published
        { Published declarations }
        property Align;
        property Alignment;
        property Anchors;
        property BevelEdges;
        property BevelInner;
        property BevelOuter;
        property BevelKind default bkNone;
        property BevelWidth;
        property BiDiMode;
        property BorderStyle;
        property BorderWidth;
        property Color;
        property Ctl3D;
        property DragCursor;
        property DragKind;
        property DragMode;
        property Enabled;
        property Font;
        property HideSelection;
        property HideScrollBars;
        property ImeMode;
        property ImeName;
        property Constraints;
        property Lines;
        property MaxLength;
        property ParentBiDiMode;
        property ParentColor;
        property ParentCtl3D;
        property ParentFont;
        property ParentShowHint;
        property PlainText;
        property PopupMenu;
        property ReadOnly;
        property ScrollBars;
        property ShowHint;
        property TabOrder;
        property TabStop default True;
        property Visible;
        property WantTabs;
        property WantReturns;
        property WordWrap;
        property OnChange;
        property OnContextPopup;
        property OnDragDrop;
        property OnDragOver;
        property OnEndDock;
        property OnEndDrag;
        property OnEnter;
        property OnExit;
        property OnKeyDown;
        property OnKeyPress;
        property OnKeyUp;
        property OnMouseActivate;
        property OnMouseDown;
        property OnMouseMove;
        property OnMouseUp;
        property OnMouseWheel;
        property OnMouseWheelDown;
        property OnMouseWheelUp;
        property OnProtectChange;
        property OnResizeRequest;
        property OnSaveClipboard;
        property OnSelectionChange;
        property OnStartDock;
        property OnStartDrag;
      end;
     
    procedure Register;
     
    implementation
     
    procedure Register;
    begin
      RegisterComponents('Personel', [TVerticalEdit]);
    end;
     
    { TVerticalEdit }
     
    var   FRichEditModule: THandle;
     
    constructor TVerticalEdit.Create(AOwner: TComponent);
    // procedure copiée sur TCustomRichEdit.
    begin
      inherited Create(AOwner);
    end;
     
    procedure TVerticalEdit.CreateParams(var Params: TCreateParams);
    // procedure copiée sur TCustomRichEdit.
    const
      RichEditModuleName = 'MSFTEDIT.DLL';
      HideScrollBars: array[Boolean] of DWORD = (ES_DISABLENOSCROLL, 0);
      HideSelections: array[Boolean] of DWORD = (ES_NOHIDESEL, 0);
    begin
      if FRichEditModule = 0 then
      begin
        FRichEditModule := LoadLibrary(RichEditModuleName);
        if FRichEditModule <= HINSTANCE_ERROR then FRichEditModule := 0;
      end;
      inherited CreateParams(Params);
      CreateSubClass(Params, 'RICHEDIT50W');
      with Params do
      begin
        Style := WS_CHILD or WS_VISIBLE or ES_VERTICAL or ES_MULTILINE or HideScrollBars[True] or
          HideSelections[True];
        WindowClass.style := WindowClass.style and not (CS_HREDRAW or CS_VREDRAW);
      end;
     
    end;
     
     
    end.
    Merci de m'avoir lu.
    Amicalement,
    Claude.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 45
    Par défaut C'est encore moi...
    Toujours pas de suggestions ?

    Allons, un petit composant de rien du tout !...
    L'un d'entre vous a bien dû s'interresser au sujet un jour ou l'autre.

    Voici les messages que j'obtiens :

    Dans l'EDI quand j'essaye de changer la propriétés Lines :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur d'insertion de ligne RichEdit.
    Mais pas d'eereur si je supprime le texte dans cette propriété.

    A l'exécution quand j'implémente Lines.Add(S : string) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception EReadError in Module Project1.exe at 00017CD3
    Error reading ANewRichEdit1.Lines.Strings: RichEdit Line insertion Error.
    Mais pas d'erreur dans LoadFromFile('File.rtf').

    Autre chose, dans le même tonneau. j'ai crée un composant qui affecte à la sélection via les messages Windows de l'Unité "RichEdit", la propriété CFE_LINK (c'est à dire que la sélection prends l'apparence d'un URL, Bleu et souligné). mais lorsque je sauvegarde le texte ainsi modifié, et que je le recharge, plus de trace de ce type de formattage.
    Quid (si j'ose dire) ?

    Je suis ouvert à toutes suggestions...

    Merci de m'avoir lu.

    Amicalement,

    ARDILLER.

Discussions similaires

  1. Pb de formatage de texte... Vertical, inversé...
    Par Grammaton dans le forum Access
    Réponses: 4
    Dernier message: 01/03/2007, 13h54
  2. Texte vertical
    Par Noun dans le forum OpenGL
    Réponses: 1
    Dernier message: 01/06/2005, 17h13
  3. [C#] Affichage de texte vertical...
    Par AntiSAL dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/06/2004, 14h46
  4. Canvas et Texte vertical
    Par ulysse66x dans le forum Composants VCL
    Réponses: 8
    Dernier message: 01/02/2004, 16h46
  5. TRichEdit défilement de texte automatique
    Par bloops dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/06/2003, 11h13

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