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 :

TStringGrid : modifier le comportement [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 26
    Points
    26
    Par défaut TStringGrid : modifier le comportement
    Bonjour (et bonne année, je crois qu'il est encore temps)

    Je bloque sur le problème suivant...
    J'ai une StringGrid 1 dont j'aimerais interdire la possibilité d'éditer certaines colonnes, en fonction du contenu d'une autre StringGrid 2 (qui ne contient qu'une ligne et le même nombre de colonnes que la StringGrid 1) Si la cellule est vide en grille 1, la colonne doit être non éditable dans la grille 2.
    Je pensais mettre un code de ce genre dans la procédure OnDrawCell de la grille 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if grid1.Cells[aCol,0]='' then // le aCol est donné par la procédure
       grid2.options:=grid2.options-[goEditing]
    else
       grid2.options:=grid2.options+[goEditing];
    Problème : j'obtiens un scintillement de la grille 2, comme si quelque chose tournait en boucle. Pas d'édition possible et blocage du programme.
    J'ai essayé de placer le test dans d'autres procédures (OnPrepareCanvas, par exemple, mais sans succès)

    Quelqu'un a-t-il une idée ?

    D'avance, merci.

  2. #2
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Salut

    Pourquoi dans l'évenement OnDrawCell ? Je l'aurais plutot mis dans OnMouseDown ... Attention, il ne faut pas qu'il y ait l'option AlwaysShowEditor ...

    Bonne chance

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 26
    Points
    26
    Par défaut
    Merci pour cette réponse.
    Je n'ai pas utilisé onMouseDown parce que l'utilisateur peut passer d'une colonne à l'autre avec les flèches de direction. Et quand j'épluche les discussions de ce forum, je m'aperçois que c'est souvent dans onDrawCell qu'on insère ce type de routine.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    pour ce cas ce serait plutôt le OnColEnter
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 26
    Points
    26
    Par défaut
    Ah, ça m'irait bien, mais hélas, il n'y a pas ce type d'événement dans la StrinGrid...

  6. #6
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Alors, tu peux utiliser les évenements OnMouseDown pour le clic, et OnKeyDown pour le déplacement avec le clavier ...

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par bubu42 Voir le message
    Ah, ça m'irait bien, mais hélas, il n'y a pas ce type d'événement dans la StrinGrid...
    effectivement , je m'étais focalisé , va savoir pourquoi, sur un DBGrid

    dans ce cas alors ONSelectCell (et là il existe cet èvènement )
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  8. #8
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 26
    Points
    26
    Par défaut
    Après avoir essayé divers emplacement pour la routine de test, j'ai fini par trouver un endroit qui va bien : dans OnBeforeSelection.
    Ca (dé)bloque bien l'autorisation d'édition en fonction de la grille de commande (grid 1) sur l'ensemble de la colonne (grid 2)
    Merci de vos réponses.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/04/2011, 11h40
  2. Modifier le comportement d'un formulaire
    Par Immothep dans le forum Langage
    Réponses: 4
    Dernier message: 21/06/2007, 15h46
  3. Modifier le comportement d'une fenêtre de choix
    Par Nalmo dans le forum Applets
    Réponses: 1
    Dernier message: 03/11/2006, 10h50
  4. modifier le comportement d'ArrayList
    Par Zorgz dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 09/10/2006, 13h31
  5. [D7] Modifier le comportement d'un FieldKind = fklookup
    Par Débéa dans le forum Bases de données
    Réponses: 4
    Dernier message: 30/01/2006, 12h31

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