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 :

Focus sur DrawGrid


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Par défaut Focus sur DrawGrid
    Quelqu'un saurait comment on peut supprimer le cadre pointillé qui apparaît autour des cellules sélectionnées d'une drawgrid ?
    Ce fichu cadre perturbe l'affichage des cellules que je mets en place sur le DrawCell.
    Merci d'avance pour vos réponses.

  2. #2
    Membre éprouvé Avatar de fs999
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 99
    Par défaut
    Salut,

    La seule solution c'est de l'enlever après dans OnDrawCell :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    begin
      if gdFocused in State then
      begin
        if goDrawFocusSelected in DrawGrid1.Options then
          DrawGrid1.Canvas.Pen.Color := clHighlight
        else
          DrawGrid1.Canvas.Pen.Color := DrawGrid1.Color;
     
        DrawGrid1.Canvas.Brush.Style := bsClear;
        DrawGrid1.Canvas.Rectangle(Rect);
      end;
    end;
    A+

  3. #3
    Membre confirmé
    Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Par défaut
    L'idée est intéressante mais ne fonctionne pas, car le cadre pointillé est dessiné automatiquement après l'exécution de DrawCell.

    Pour complément d'information, j'utilise Delphi6 perso.

    Je ne dois pas être le seul à me heurter à ce problème, très simple à mettre en évidence. Mettre une DrawGrid (ou StrinGrid) sur une feuille en mettant sa propriété Align à alClient et RowSelect à True. Si l'on diminue la taille de la fenêtre de manière à masquer quelques colonnes puis qu'on agrandit la fenêtre lentement, des barres pointillés verticales apparaissent dans les cellules.
    Pour ceux qui utilisent les StringGrid ou DrawGrid, vous n'avez pas ce problème ?

  4. #4
    Membre éprouvé Avatar de fs999
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 99
    Par défaut
    Salut,

    Exacte.

    C'est plus compliqué que cela, il faut définir une procédure DefaultDrawCell comme dans le dbgrid. Puis mettre le DefaultDraw à False et appeller cette routine dans OnDrawCell.

    Si tu la veux, fait moi signe...

    A+

  5. #5
    Membre confirmé
    Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Par défaut
    Merci pour ta proposition, mais tu m'as donné la réponse.
    J'ai déjà écrit ma propre routine d'affichage des cellules. Il me suffisait de positionner DefaultDrawing à False et tout était ok. Je suis passé à côté de cette propriété et j'ai passé le week-end sur le problème que j'ai exposé, comme un boulet .
    Encore une fois merci infiniment. J'aurai peut-être trouvé seul mais dans combien de temps ....

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/10/2004, 14h33
  2. Focus sur une application Windows
    Par mixi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/10/2004, 19h57
  3. [VB.NET] Focus sur cellule de DataGrid
    Par daner06 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/05/2004, 21h12
  4. Réponses: 2
    Dernier message: 19/08/2003, 15h45
  5. Ne jamais mettre le focus sur un tbutton, possible
    Par portu dans le forum Composants VCL
    Réponses: 4
    Dernier message: 03/07/2003, 15h06

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