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

Lazarus Pascal Discussion :

DrawText n'affiche pas correctement les accents dans un StringGrid [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2015
    Messages : 16
    Par défaut DrawText n'affiche pas correctement les accents dans un StringGrid
    Bonjour à tous,
    J'ai un problème avec la fonction DrawText que j'utilise dans la fonction DrawCell de mon StringGrid, elle ne m'affiche pas les accents correctement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DrawText(Canvas.Handle, ' décembre ' , -1, aRect , DT_CENTER or DT_NOPREFIX or DT_WORDBREAK );
    Elle m'affiche Nom : Décembre.jpg
Affichages : 163
Taille : 2,1 Ko.
    Sous Delphi , aucun problème.
    Je pense que cela vient de l'Unicode, mais je ne trouve pas.

    Merci d'avance, je suis nouveau sous Lazarus.

    Lazarus 2.2.6 - FPC : 3.2.2

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 917
    Billets dans le blog
    6
    Par défaut
    Bonjour et bienvenue !
    Les constantes et chaînes sont probablement codées en UTF-8 et le DrawText attendrait une chaîne ANSI : essaye d'utiliser Utf8ToAnsi pour convertir la chaîne à afficher.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2015
    Messages : 16
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    Bonjour et bienvenue !
    Les constantes et chaînes sont probablement codées en UTF-8 et le DrawText attendrait une chaîne ANSI : essaye d'utiliser Utf8ToAnsi pour convertir la chaîne à afficher.
    Non, toujours le même problème
    ci dessous mon code complet si cela peut aider à comprendre.
    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
     
    procedure TFormAccueil.SGPlanningDrawCell(Sender: TObject; aCol,  aRow: Integer; aRect: TRect; aState: TGridDrawState);
    var tmp : RawByteString;
    begin
       With Sender As TStringGrid Do With Canvas Do
      Begin
        { Sélection de la couleur de fond }
          If gdFixed in aState Then     Brush.Color := clBtnFace
           Else If gdSelected In aState Then Brush.Color := clNavy
               Else Brush.Color := clWhite;
     
        { Dessin du fond }
        FillRect(aRect);
     
        { Sélection de la couleur de texte }
        If gdSelected In aState Then
              SetTextColor (Canvas.Handle,clWhite)
           Else
             SetTextColor(Canvas.Handle,clBlack);
     
        { Dessin du texte en utilisant la fonction API }
     
        //rawText(Canvas.Handle, PChar(Cells[ACol,ARow]), -1, aRect , DT_CENTER or DT_NOPREFIX or DT_WORDBREAK );
         //tmp :=  Utf8ToAnsi('Décembre') ;
         DrawText(Canvas.Handle, 'Décembre' , -1, aRect , DT_CENTER or DT_NOPREFIX or DT_WORDBREAK );
      End;
    end;
    Merci d'avance

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 198
    Par défaut
    Hello,
    Quelles unités utilises-tu ?
    parce que moi avec ces unités là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    uses
      lclintf, lcltype, SysUtils, Forms, Controls, Grids, StdCtrls, Types, graphics;
    et ton code j'obtiens ceci :
    Nom : LazStringGrid.png
Affichages : 187
Taille : 8,7 Ko

    Ami calmant, J.P

  5. #5
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2015
    Messages : 16
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    Hello,
    Quelles unités utilises-tu ?
    parce que moi avec ces unités là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    uses
      lclintf, lcltype, SysUtils, Forms, Controls, Grids, StdCtrls, Types, graphics;
    et ton code j'obtiens ceci :
    Nom : LazStringGrid.png
Affichages : 187
Taille : 8,7 Ko

    Ami calmant, J.P
    Super, cela fonctionne.
    Avez vous vous une explication, quel est la différence entre les unité avec lcl et sans lcl devant le non de l'unité.
    Merci à tous.

  6. #6
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 198
    Par défaut
    The Lazarus component library or LCL is very similar to Delphi's VCL (Visual Component Library). Most Lazarus units, classes and properties have the same name and functionality as their equivalents in Delphi. This makes porting Delphi applications to Lazarus relatively easy.

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

Discussions similaires

  1. IE n'affiche pas correctement les fichiers logs
    Par Vanito dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 02/04/2014, 19h24
  2. MaskedTextBox n'affiche pas correctement les données saisies
    Par digital prophecy dans le forum Windows Forms
    Réponses: 0
    Dernier message: 31/08/2011, 16h10
  3. Réponses: 7
    Dernier message: 02/02/2011, 09h15
  4. Réponses: 3
    Dernier message: 19/02/2007, 23h35

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