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 :

Comment faire un planning ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2016
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 57
    Points : 11
    Points
    11
    Par défaut Comment faire un planning ?
    Salut à tous, je travail avec delphi 7 et je voudrai faire un planning avec, es ce qu'il y'a parmi ses composant de quoi faire ?

  2. #2
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2016
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 57
    Points : 11
    Points
    11
    Par défaut
    Je vais essayé de faire avec un composant que je découvre TStringGrid, Qu'es ce que vous pensez ?

  3. #3
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 339
    Points : 3 107
    Points
    3 107
    Par défaut
    Bonjour,

    il te faudra surement une base de données pour stocker les évènements de ton planning ? Tu pourrais alors plutôt utiliser un DBGrid ?

    Sinon tu peut stocker dans un fichier (TFileStream par exemple ou simplement txt) ou dans Excel.

    Il y a aussi DateTimePicker et MonthCalendar pour saisir les dates.

    A+
    Charly

  4. #4
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2016
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 57
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    Bonjour,

    il te faudra surement une base de données pour stocker les évènements de ton planning ? Tu pourrais alors plutôt utiliser un DBGrid ?

    Sinon tu peut stocker dans un fichier (TFileStream par exemple ou simplement txt) ou dans Excel.

    Il y a aussi DateTimePicker et MonthCalendar pour saisir les dates.

    A+
    Charly
    tu veut dire que je met les heure dans la première ligne de DBGrid et les dates sur la première colonne du DBGrid ?

  5. #5
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut
    Je te conseille le TPlanner des TMS

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    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 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Tout dépend du type de planning que vous voulez !
    TMS propose effectivement quelque chose d'excellent pour peu que vous vouliez vous fendre de quelques euros.
    La JVCL propose également une représentation (jvTimeLine)
    Et sinon il est effectivement possible avec un TStringGrid de faire une représentation d'un planning (de type gantt)
    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

  7. #7
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2016
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 57
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par retwas Voir le message
    Je te conseille le TPlanner des TMS
    j'avais essayé avec mais non seulement il est payant mais en plus il est difficile à comprendre avec très peu de documentation

  8. #8
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2016
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 57
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,
    Tout dépend du type de planning que vous voulez !
    TMS propose effectivement quelque chose d'excellent pour peu que vous vouliez vous fendre de quelques euros.
    La JVCL propose également une représentation (jvTimeLine)
    Et sinon il est effectivement possible avec un TStringGrid de faire une représentation d'un planning (de type gantt)
    Merci, j'ai pu faire 90% de ce que je voulais avec TStringGrid , mais j'ai des soucis sur le saut des lignes dans la cellule, élargir et retricir les ligne et les colonnes après la compilation, différencier le font des FixedCols FixedRows par apport aux autres cellules !!!?

  9. #9
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 339
    Points : 3 107
    Points
    3 107
    Par défaut
    Bonjour,
    pour passer à la ligne dans une cellule de StringGrid c'est Ctrl + Enter (et non Enter seul). C'est un standard Windows ancien, car la touche Enter sert à valider le bouton actif dans un dialog classique.

    Pour les couleurs regarde ici

    De plus, il y a eu une discussion sur le forum, il y a peu de temps pour mettre en couleur une seule cellule d'un StringGrid
    A+
    Charly

  10. #10
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 339
    Points : 3 107
    Points
    3 107
    Par défaut
    Pour permettre la modification des dimensions des lignes et colonnes à l'exécution, il faut mettre goRowSizing et goColSizing à true dans la propriété options

  11. #11
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 339
    Points : 3 107
    Points
    3 107
    Par défaut
    Également 2 rubriques de la Faq qui te serviront :

    pour passer à la ligne avec Enter

    et pour enregistrer ta grille dans un fichier ou la relire

    A+
    Charly

  12. #12
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 339
    Points : 3 107
    Points
    3 107
    Par défaut
    Rebonjour,

    pour mettre la cellule [2, 2] en rouge avec texte en blanc :

    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
    procedure TF_Test.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    begin
      With Sender As TStringGrid Do With Canvas Do 
      Begin 
        { Sélection de la couleur de fond et de police}
        If ((ARow =2) And (ACol = 2)) Then
           Begin
              Brush.Color := clRed ;
              SetTextColor(Canvas.Handle,clWhite) ;
           End
        Else
           Begin
              Brush.Color := clWhite;
              SetTextColor(Canvas.Handle,clBlack);
           End ;
        { Dessin du fond }
        FillRect(Rect); 
        { Affichage du texte }
        DrawText(Canvas.Handle, PChar(Cells[ACol,ARow]), -1, Rect ,
          DT_CENTER or DT_NOPREFIX or DT_WORDBREAK ); 
      End; 
    end;
    A+
    Charly

  13. #13
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2016
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 57
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    Bonjour,
    pour passer à la ligne dans une cellule de StringGrid c'est Ctrl + Enter (et non Enter seul). C'est un standard Windows ancien, car la touche Enter sert à valider le bouton actif dans un dialog classique.

    Pour les couleurs regarde ici

    De plus, il y a eu une discussion sur le forum, il y a peu de temps pour mettre en couleur une seule cellule d'un StringGrid
    A+
    Charly
    Je voulais dire que dans une cellule je peut écrire 2,3 voir plus de ligne...

  14. #14
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2016
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 57
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    Pour permettre la modification des dimensions des lignes et colonnes à l'exécution, il faut mettre goRowSizing et goColSizing à true dans la propriété options
    Je travaille avec delphi 7 et je trouve pas ces propriétés

  15. #15
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2016
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 57
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    Rebonjour,

    pour mettre la cellule [2, 2] en rouge avec texte en blanc :

    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
    procedure TF_Test.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    begin
      With Sender As TStringGrid Do With Canvas Do 
      Begin 
        { Sélection de la couleur de fond et de police}
        If ((ARow =2) And (ACol = 2)) Then
           Begin
              Brush.Color := clRed ;
              SetTextColor(Canvas.Handle,clWhite) ;
           End
        Else
           Begin
              Brush.Color := clWhite;
              SetTextColor(Canvas.Handle,clBlack);
           End ;
        { Dessin du fond }
        FillRect(Rect); 
        { Affichage du texte }
        DrawText(Canvas.Handle, PChar(Cells[ACol,ARow]), -1, Rect ,
          DT_CENTER or DT_NOPREFIX or DT_WORDBREAK ); 
      End; 
    end;
    A+
    Charly
    Merci je vais appliquer ce que tu ma proposé dans les 2 dernières citations

  16. #16
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 339
    Points : 3 107
    Points
    3 107
    Par défaut
    Bonsoir,

    déroule la propriété Options (en cliquant sur le +), tu trouveras goRowSizing et goColSizing dans D7

    Charly

  17. #17
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2016
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 57
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    Bonsoir,

    déroule la propriété Options (en cliquant sur le +), tu trouveras goRowSizing et goColSizing dans D7

    Charly
    Effectivement j'ai pas fait attention

  18. #18
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2016
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 57
    Points : 11
    Points
    11
    Par défaut
    Bonjours, Il me reste deux choses et ça sera super, d'abord es ce que c'est possible qu'une cellule reçoit plusieurs lignes ? Ensuite au lancement j'ai deux axes sur la 1ere ligne j'ai les dates du 01janvier2017 jusqu'au 31decembre2017 et sur la 1ere colonne j'ai les horaire, bon j'ai pu les affiché, mais je voudrais que chaque jours s'affiche sur la 2eme colonne la date courante sans perdre sur ce le tableau l'historique des dates précédentes depuis le 1janvier2017

  19. #19
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 339
    Points : 3 107
    Points
    3 107
    Par défaut
    Bonjour,

    pour écrire sur plusieurs lignes avec la touche Enter, tu dois programmer le OnKeyDown du StringGrid comme dans la FAQ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word; 
      Shift: TShiftState); 
    begin 
      if Key = VK_RETURN then 
        StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] := StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] + sLineBreak; 
    end;
    et aussi mettre goAlwaysShowEditor de Options à True

    Pour afficher la colonne N à l'affichage de la fiche, tu mets la propriété Scrollbars du StringGrid à ssHorizontal et dans le OnShow de la Form, :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      StringGrid1.Col := N+1 ;
    A+
    Charly

  20. #20
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2016
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 57
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    Bonjour,

    pour écrire sur plusieurs lignes avec la touche Enter, tu dois programmer le OnKeyDown du StringGrid comme dans la FAQ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word; 
      Shift: TShiftState); 
    begin 
      if Key = VK_RETURN then 
        StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] := StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] + sLineBreak; 
    end;
    et aussi mettre goAlwaysShowEditor de Options à True

    Pour afficher la colonne N à l'affichage de la fiche, tu mets la propriété Scrollbars du StringGrid à ssHorizontal et dans le OnShow de la Form, :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      StringGrid1.Col := N+1 ;
    A+
    Charly
    parfait pour la 2eme partie StringGrid1.Col := N+7 qu' a marché pour moi, merci beaucoup Mr Charly910 grace à toi j'ai pu faire tous ce que je voulais avec StringGrid. merci aussi aux autres qui ont pris la peine pour me répondre..

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

Discussions similaires

  1. Comment faire un planning ? Un datagridview ?
    Par antrax2013 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/10/2010, 12h26
  2. [MySQL] Comment faire un planning
    Par smg257 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/10/2009, 17h31
  3. [VB.NET]Comment faire un planning?
    Par papy27 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/08/2006, 18h50
  4. Réponses: 1
    Dernier message: 22/11/2005, 12h00
  5. Comment faire pour qu'une Form reste en avant-plan?
    Par Bodom-Child dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/08/2005, 11h28

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