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 FMX Delphi Discussion :

TMSFMXGrid : Calcul d'une hauteur d'entête à 270°


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut TMSFMXGrid : Calcul d'une hauteur d'entête à 270°
    Bonjour,

    Dans ma FixedRow, je place des textes à 270°. Je veux calculer la hauteur nécessaire :
    Le code suivant ne provoque que des erreurs :
    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
    var
      iLoc : integer;
      aCanvas : TCanvas;
      aHeight : single;
    begin
       aHeight := 0;
     
       aCanvas := TCanvas.Create;
     
       for iLoc  := 1 to TMSFMXGrid1.ColumnCount -1 do begin
          aCanvas.Font.Assign(TMSFMXGrid1.Columns[iLoc].FixedFont);
          aHeight := max(aheight, aCanvas.TextWidth(TMSFMXGrid1.Columns[iLoc].DisplayName));
       end;
       aCanvas.Free;
       if aHeight <> 0 then TMSFMXGrid1.RowHeights[0] := aHeight;
    Je sais que ces derniers jours j'ai un peu abusé de Qt mais quand même.
    Au niveau des messages, j'ai
    [dcc32 Avertissement] Unit1.pas(75): W1020 Construction d'instance de 'TCanvas' contenant la méthode abstraite 'TCanvas.IntersectClipRect'
    et
    Nom : 16.png
Affichages : 137
Taille : 13,9 Ko
    Cela doit être bête comme tout mais je ne vois pas le problème.
    Dernière modification par Invité ; 08/06/2015 à 13h00.

  2. #2
    Invité
    Invité(e)
    Par défaut
    J'ai finalement un code fonctionnel
    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
    var
      iLoc : integer;
      aHeight : single;
      aFont : TFont;
      aBitMap: TBitmap;
    begin
       aHeight := 0;
       try
        aFont := TFont.Create;
        aBitMap := TBitmap.Create;
     
        with aBitMap, TMSFMXGrid1 do
          for iLoc  := 1 to ColumnCount -1 do begin
            aFont :=  Columns[iLoc].FixedFont;
            Canvas.Font.Assign(aFont);
            aHeight := max(aheight, Canvas.TextWidth(Columns[iLoc].DisplayName));
          end;
       finally
          aBitMap.Free;
          aFont.Free;
       end;
       if aheight <> 0 then TMSFMXGrid1.RowHeights[0] := aHeight +4;
    Mais pourquoi l'utilisation directe de TCanvas ne fonctionne-t-elle pas ?

  3. #3
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    Car en FMX, TCanvas est une class abstraite:
    TCanvas = class abstract(TInterfacedPersistent)
    Il faudrait peut-être utiliser TCanvasManager.GetDefaultCanvas pour avoir la bonne classe.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci pour votre aide.

    Cela me semble un peu compliqué en effet. En passant par un classique TBitmap, le problème semble résolu sur toutes les plateformes.

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

Discussions similaires

  1. Calcul d'une hauteur en css, est-ce possible ?
    Par Stephane_br dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 09/04/2013, 21h02
  2. Calcul de la hauteur d'une minipage !
    Par mmx dans le forum Mise en forme
    Réponses: 6
    Dernier message: 19/09/2011, 15h56
  3. Calcul de la hauteur d'une page
    Par gailup dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 09/06/2006, 14h53
  4. Recuperer un champ calculé dans une variable....
    Par vijeo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/12/2004, 14h57
  5. calcul dans une requête
    Par blaz dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/12/2003, 10h31

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