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 :

Gestion de planning : choix du composant à utiliser pour affichage de donnée


Sujet :

Lazarus Pascal

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Points : 118
    Points
    118
    Par défaut Gestion de planning : choix du composant à utiliser pour affichage de donnée

    Bonjour à tous,

    J'ai besoin d'un conseil : je dois créer un planning, avec comme titre de colonne les n° de jours d'un mois, comme titre de ligne le nom des personnes. A l'intersection de chaque ligne et colonne, doit être renseigné ce que fait cette personne pour le jour correspondant : soit elle travaille de nuit (N), soit de journée (J), soit elle est en repos (R) ou congé (C).

    La question que je me pose : dois je utiliser une composant DBGRID, ou alors une grille simple.
    Ma base de donnée est realisée sous firebird.

    Avez vous une idée ?

    A+

    windows 10 / DEBIAN 7.9 / Etc...

  2. #2
    Membre expérimenté
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Points : 1 688
    Points
    1 688
    Par défaut
    Bonjour,

    Dans le cas d'une gestion de planning, je conseil fortement l'utilisation d'une TSringGrid.
    Cela offre plus de possibilités en terme de présentation écran.
    A vous par contre de développer la partie gestion des enregistrements dans la base mais c'est tout simple

    @+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Points : 118
    Points
    118
    Par défaut

    ok mais, en ce qui concerne l'affichage, j'ai peur que l'affichage soit plus long!

    Qu'en pensez vous ?

    A+

    windows 10 / DEBIAN 7.9 / Etc...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 73
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par CharleLéo Voir le message

    ok mais, en ce qui concerne l'affichage, j'ai peur que l'affichage soit plus long!

    Qu'en pensez vous ?

    A+
    Bonjour,
    Non, pas de problème, je ne pense pas que l'affichage soit plus long, ce n'est pas l'affichage de la TStringGrid qui prend du temps mais le nombre de données à afficher.

  5. #5
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 58
    Points : 195
    Points
    195
    Par défaut
    L'utilisation d'un TStringGrid Sera plus pratique et plus souple :

    Tu fais ta requête, tu parcours ton dataset pour remplir ton TStringGrid dans lequel tu auras mis OwnerDraw à False pour ne pas laisser Laz 'dessiner', et tu auras mis un evenement OnDrawCell qui fera le dessin.

    J'ai testé il y a peu les possibilités du TStringGrid comme cela et c'est très puissant (avec possibilités de changer, par exemple la hauteur de la ligne, de faire du multiligne dans les cases, changer les couleurs du fond, etc, etc, ...)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Points : 118
    Points
    118
    Par défaut

    Hello,

    j'ai fais plusieurs essai, notament couleur des lignes de titres, affichage d'un éditeur lors d'un click dans une cellule (voir exemple dans lazarus), mais depuis plusieurs jours, je cherche à fusionner les cellules de la première colonne.

    Quelqu'un a une idée?

    Il existe peut etre un composant free!

    A+

    windows 10 / DEBIAN 7.9 / Etc...

  7. #7
    Membre expérimenté
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Points : 1 688
    Points
    1 688
    Par défaut
    Bonjour,

    Pour faire cela, il te faut redessiner la colonne dans l'événement OnDrawCell en interceptant aCol =x et dessiner les bordures en fonction de tes besoins.

    Regarde le code du composant de la TSringGrid et tu trouveras tout ce dont tu as besoin dedans.
    A toi de programmer le comportement que tu souhaite obtenir

    Une autre solution consiste a développer ta propre grille avec les propriétés de ton choix

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Points : 118
    Points
    118
    Par défaut

    Ok et merci

    je vais essayer de faire ça.

    je reviens plus tard
    A+

    windows 10 / DEBIAN 7.9 / Etc...

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Points : 118
    Points
    118
    Par défaut

    re,

    au secours, je n'y arrive pas! j'ai regardé et essayé des bouts de codes, cela marche, mais lorsque je fait défiler ma stringgrid de gauche à droite, la fusion n'existe plus.

    En gros, je désire que dans ma colonne de gauche, un texte soit affiché sur 3 lignes et une colonne. En fait il faut que je fusionne de la cellule(0,0) à la cellule (0,3).

    Avez vous des pistes. Comment se fait l'appel à drawcell et cet appel est il fait lors du déplacement de gauche à droite.

    A+

    windows 10 / DEBIAN 7.9 / Etc...

  10. #10
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 58
    Points : 195
    Points
    195
    Par défaut
    tu as un évènement ondrawcell. Ne pas oublier de passer defaultdrawing à false
    Tu tente de fusionner les premières cellules de la colonne 0 ? utilises-tu une fixedcol ?

    dans ta procédure drawcell, ne pas oublier de 'peindre' (canvas.fillrect())le fond, puis d'écrire ton texte (canvas.textrect()), le tout aux bonnes coordonnées.

    Et oui, c'est appelé à chaque fois que le composant doit être redessiné, donc quand tu déplace la grid.

    le plus simple dans ton cas serait de tester les positions passées en paramètre : si acol=0 et arow=0 on dessine sur les 4 cases, si acol=0 et arow compris entre 1 et 3 je ne fait rien, si tout autre valeur, je dessine le texte dans la case.

Discussions similaires

  1. Composants à utiliser pour une interface graphique Java
    Par nicolas.pied dans le forum Composants
    Réponses: 4
    Dernier message: 28/11/2005, 20h27
  2. Réponses: 3
    Dernier message: 11/11/2005, 15h52
  3. composants à utiliser pour mysql
    Par cedni dans le forum C++Builder
    Réponses: 27
    Dernier message: 02/10/2005, 14h47
  4. [VB.NET] Composant utilisée pour changer donnée access
    Par moust dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/04/2005, 10h44
  5. [Debutant(e)]Quel composant utiliser pour faire une grille
    Par elitost dans le forum Composants
    Réponses: 7
    Dernier message: 21/06/2004, 20h44

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