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 :

Aligner du texte avant impression sur TRicheEdit


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 187
    Par défaut Aligner du texte avant impression sur TRicheEdit


    Mon but est d'imprimer le contenu d'un TRichEdit. Tout se passait bien jusqu'au moment ou j'ai dus commencé à aligner du texte!

    J'ai donc commencé par utiliser Quick report se trouvant dans la FAQ
    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
    Procedure EcrireMot(Mot:string; LeftDebutMM:extended; 
    EcartementLettreMM:extended; TopMotMM:extended;
    Parent:TWinControl); 
    var 
    Lettre : Array of TQRLabel; 
    i : integer; 
    begin 
      SetLength(Lettre,Length(Mot)+1); 
      for i:=1 to Length(Mot) do begin 
        Lettre[i] := TQRLabel.Create(nil); 
        Lettre[i].Caption:=copy(Mot,i,1); 
        Lettre[i].Parent:=Parent; 
        Lettre[i].Size.Left:= LeftDebutMM+(EcartementLettreMM*i); 
        Lettre[i].Size.Top:= TopMotMM; 
      end; 
    end;
    qui ne fonctionne pas si on n'ajoute pas l'unité 'QRCtrls' mais bon....
    Ma ligne ressemblait donc à klk chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EcrireMot('ESSAI',5,5,20,richedit1)
    et le résultat n'est pas vraiment ce que j'espérais: 'essaie' s'affiche mais en drole de format et de toute façon pas moyen de l'imprimer... Je ne sais pour quelle raison, ça bloque.

    Peut être que le quick report que j'utilise ne fonctionne pas pour les TRichEdit !!!
    Y aurait il un autre tutau klk part qui permet d'aligner le texte ?

    Thxs in advance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 187
    Par défaut Largeur d'un richedit en pixel ?
    Quelle galère pour aligner du text!!!
    J'ai commencé par créer une fonction qui ajoute partout le même nombre de blanc:
    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
    function calcul_blanc(Bquant:integer; Bnom:string;
    Bprix:integer): string;
    var i:integer; //emplacement de la colonne Bprix
        k: string;  //nombre de blanc à ajouter
    begin
    i:= 20 +length(inttostr(Bprix)) - (length(inttostr(Bquant))
    + Length(Bnom)); //calcul du lieu ou ajouter colonne Bprix
    k:= '';                  //vider la chaine de blanc
    while i> 0 do        //on sait jamais si i<0
      begin
      k:= k + ' '; //ajout du nombre i de blanc
      i:= i-1;      
      end;
    result:= inttostr(Bquant) +'x ' + Bnom + k + inttostr(Bprix);
    end;
    et ça n'a pas marché...
    Tout ce calcul en pixel et non pas en caractère......
    J'ai l'impression que je devoir passer par toutes ces histoires de 'canva' auxquelles je comprend que dalle!!!
    Existe t il un moyen de connaitre la largeur d'un richedit en pixel ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 187
    Par défaut écriture de textwith
    J'ai presque réussi avec le canvas
    Par contre, l'alignement n'est pas top lorsqu'il y a des valeurs de trois caractères et de quatre caractères.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printer.Canvas.TextOut(50 + textwidth('blabla'),0,'chaine'))
    Delphi me renvoi que 'textwidth' n'est pas une variable déclaré!!!

  4. #4
    Membre éclairé

    Inscrit en
    Novembre 2002
    Messages
    815
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 815
    Par défaut
    salut ,

    En fait tu veux inclure une marge a gauche de ton richedit quand tu imprimes ?

    c'est cela ?

  5. #5
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 513
    Par défaut
    Bonjour,

    et si tu utilises une police non proportionnelle et que tu calcules le nombre d'espaces en fonction du nombre de caractères des chaines à écrire, cela ne va pas ?

    A+

    Charly

  6. #6
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 513
    Par défaut
    J'y pense : normalement, le RichEdit accepte les caractères tabulation Chr(9)

    Cela devrait marcher si les items des colonnes ne sont pas de longueurs trop différentes (sinon il faut parfois 2 Tab pour aligner)

    As tu essayé ?

    @+

    Charly

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

Discussions similaires

  1. Problème d'alignement de texte entre cellule sur 1 ligne
    Par rouletabille63 dans le forum BIRT
    Réponses: 2
    Dernier message: 08/08/2012, 22h14
  2. injection texte avant impression
    Par astyan dans le forum Administration système
    Réponses: 2
    Dernier message: 03/11/2011, 11h07
  3. Aperçu Avant impression sur une JTable
    Par Dine_Med dans le forum Composants
    Réponses: 2
    Dernier message: 13/02/2011, 00h00
  4. [XL-2007] créer un bouton aperçu avant impression sur Excel
    Par hollywoodsky dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/12/2009, 17h44
  5. Mise en page avant impression sur toutes les feuilles du classeur
    Par fribelle dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/11/2008, 09h48

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