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 :

Taille d'une scrollbar d'un TStringGrid


Sujet :

Composants VCL Delphi

  1. #1
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    744
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 744
    Points : 500
    Points
    500
    Par défaut Taille d'une scrollbar d'un TStringGrid
    Bonjour a tous,

    J'ai besoin d'utiliser une application sur un PC de bureau mais aussi sur un écran 10" tactile. Donc nous j'ai rendu toute l'IHM redimensionnable dynamiquement et je pensais que le drivers de l'écran tactile simulerait la roulette de la souris pour faire défiler les lignes d'une TAdvstringGrid.
    Ceci n'étant pas le cas je souhaite redimensionner la taille des scrollbars de ma grille pour quelle soit accessible avec un doigt sur un écran 10". Je sais le faire dans Windows, mais je voudrai le faire en dynamique.

    Je suis donc à la recherche d'un moyen pour faire cela.. si quelqu'un a des idées , des exemples ...

    merci d'avance.
    Bye et bon code...

    Ce n'est pas tant l'aide de nos amis qui nous aide , mais notre confiance dans cette aide .

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 712
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 712
    Points : 13 176
    Points
    13 176
    Par défaut
    Par SystemParametersInfo(SPI_SETNONCLIENTMETRICS) mais les barres de défilement du système complet sont ajustées.

    Voici une petite unité qui fait cela.

    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
    unit GUITweak;
     
    interface
     
    uses Windows, SysUtils;
     
    type
      TMetricData = (mdScrollWidth,        //Taille du slider
                     mdScrollHeight,       //Taille des boutons
                     mdCaptionHeight,      //Hauteur de la barre de titre -> Boutons système
                     mdSmallCaptionHeight, //Hauteur de la petite barre de titre -> Boutons système
                     mdMenuHeight          //Hauteur des menus
                    );
     
    function RestoreMetrics: Boolean;
    function SetNonClientMetrics(aSize :integer; aMetricData :TMetricData) :boolean;
     
    implementation
     
    var
      MetricModified :boolean = FALSE;
      OldMetrics     :NONCLIENTMETRICS;
      CurrentMetrics :NONCLIENTMETRICS;
     
    procedure SaveMetrics;
    begin
      OldMetrics.cbSize := SizeOf(OldMetrics);
     
      SystemParametersInfo(SPI_GETNONCLIENTMETRICS, SizeOf(OldMetrics), @OldMetrics, 0);
     
      CurrentMetrics := OldMetrics;
    end;
     
    function RestoreMetrics: Boolean;
    begin
      if MetricModified then
      begin
        Result := SystemParametersInfo(SPI_SETNONCLIENTMETRICS, SizeOf(OldMetrics), @OldMetrics, SPIF_SENDCHANGE);
     
        if Result then
        begin
          MetricModified := FALSE;
          CurrentMetrics := OldMetrics;
        end;
      end;
    end;
     
    function SetNonClientMetrics(aSize :integer; aMetricData :TMetricData) :boolean;
     
      function Check(aOld :integer; var aCurrent :integer) :boolean;
      begin
        Result := ((aSize = 0)  and (aCurrent <> aOld)) or
                  ((aSize <> 0) and (aSize <> aCurrent));
     
        if Result then
          if aSize = 0
          then aCurrent := aOld
          else aCurrent := aSize;
      end;
     
    begin
      case aMetricData of
        mdScrollWidth        : Result := Check(OldMetrics.iScrollWidth, CurrentMetrics.iScrollWidth);
        mdScrollHeight       : Result := Check(OldMetrics.iScrollHeight, CurrentMetrics.iScrollHeight);
        mdCaptionHeight      : Result := Check(OldMetrics.iCaptionHeight, CurrentMetrics.iCaptionHeight);
        mdSmallCaptionHeight : Result := Check(OldMetrics.iSmCaptionHeight, CurrentMetrics.iSmCaptionHeight);
        mdMenuHeight         : Result := Check(OldMetrics.iMenuHeight, CurrentMetrics.iMenuHeight);
        else Result := FALSE;
      end;
     
      if Result then
      begin
        Result := SystemParametersInfo(SPI_SETNONCLIENTMETRICS, SizeOf(CurrentMetrics), @CurrentMetrics, SPIF_SENDCHANGE);
        MetricModified := MetricModified or Result;
      end;
    end;
     
    initialization
      SaveMetrics;
     
    finalization
      RestoreMetrics;
     
    end.

  3. #3
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    744
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 744
    Points : 500
    Points
    500
    Par défaut
    Merci ,

    je m'en suis sortie avec ton aide .
    Bye et bon code...

    Ce n'est pas tant l'aide de nos amis qui nous aide , mais notre confiance dans cette aide .

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

Discussions similaires

  1. Taille d'une Scrollbar
    Par N3mesis98 dans le forum Tkinter
    Réponses: 2
    Dernier message: 09/07/2013, 10h11
  2. adapter taille image à une zone sans scrollbar
    Par awalter1 dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 10/03/2012, 18h34
  3. Réponses: 14
    Dernier message: 04/11/2008, 10h25
  4. taille d'une scrollbar
    Par manutudescends dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 08/08/2006, 18h35
  5. Taille du curseur d'une scrollbar
    Par stof dans le forum MFC
    Réponses: 3
    Dernier message: 28/06/2005, 14h43

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