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 :

Test de ScrollBars dans un DBGrid [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 83
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 777
    Par défaut Test de ScrollBars dans un DBGrid
    Bonjour à tous

    Ce doit être tout bête, mais je plante !

    Je voudrais tester si, dans un DBGrid, la barre verticale est visible ou pas. J'ai donc écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if DBGrid1.ScrollBars.ssVertical then 
    ShowMessage('Vertical');
    Passe pas ! J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if DBGrid1.ScrollBars = ssVertical then 
    ShowMessage('Vertical');
    Pas mieux ! Puis j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if DBGrid1.ScrollBars = [ssVertical] then 
    ShowMessage('Vertical');
    toujours rien.

    Y a-t-il une solution ?

    Merci d'avance

  2. #2
    Membre expérimenté
    Profil pro
    au repos
    Inscrit en
    Février 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2013
    Messages : 161
    Par défaut
    hello,

    tu peux faire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     if (GetWindowlong(DBGrid1.Handle, GWL_STYLE) and WS_VSCROLL) <> 0 then
      ShowMessage('La scrollbar verticale est visible !');
    La fonction GetWindowlong se trouve dans l'unité LCLIntf

    Amicalement, Nullosse

  3. #3
    Membre chevronné Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 60

    Informations forums :
    Inscription : Novembre 2004
    Messages : 669
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     if (GetWindowlong(DBGrid1.Handle, GWL_STYLE) and WS_VSCROLL) <> 0 then
      ShowMessage('La scrollbar verticale est visible !');
    ne marche pas chez moi sous Ubuntu, visible ou pas visible,
    la réponse est toujours a visible alors que je passe scrollbar a none.

    Du coup j'ai fait ce code a améliorer, celui la fonctionne sous Ubuntu.
    ( uses lclintf, lcltype; )
    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
     
    procedure TForm1.Button1Click(Sender: TObject);
     
      var i,j: integer;
            k: integer;
            visnovis: integer;
    begin
     
        i := DBGrid1.ClientWidth;
        j := GetSystemMetrics(SM_CXVSCROLL);
        k := i - j;
        visnovis := k + j;
     
      if inttostr(visnovis) < inttostr(DBGrid1.Width-2) then
       begin
         showmessage('visible');
       end;
     
    end;
    et pour scrollbar non visible:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    remplacer : if inttostr(visnovis) < inttostr(DBGrid1.Width-2) then
    par : if inttostr(visnovis) = inttostr(DBGrid1.Width-2) then

  4. #4
    Membre chevronné Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 60

    Informations forums :
    Inscription : Novembre 2004
    Messages : 669
    Par défaut
    sinon, simplement ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      if inttostr(DBGrid1.ClientWidth) = inttostr(DBGrid1.Width-2) then
       begin
         showmessage('pas visible');
       end;

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

Discussions similaires

  1. Tri des valeurs dans un DBGrid
    Par soviet dans le forum C++Builder
    Réponses: 3
    Dernier message: 11/06/2015, 14h18
  2. Problème d'affichage de la scrollbar dans DBgrid
    Par Brain3D dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/01/2008, 15h18
  3. inserer une image dans un dbgrid delphi
    Par cello dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/02/2004, 18h51
  4. Données dans une DBgrid
    Par camino dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/02/2004, 03h40
  5. lenteur d'affichage de requete dans un DBGrid
    Par nico27 dans le forum InterBase
    Réponses: 9
    Dernier message: 23/06/2003, 13h54

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