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 ?
Version imprimable
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 ?
Je vais essayé de faire avec un composant que je découvre TStringGrid, Qu'es ce que vous pensez ?
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
Je te conseille le TPlanner des TMS
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 !!!?
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
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
É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
Rebonjour,
pour mettre la cellule [2, 2] en rouge avec texte en blanc :
A+Code:
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;
Charly
Bonsoir,
déroule la propriété Options (en cliquant sur le +), tu trouveras goRowSizing et goColSizing dans D7
Charly
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
Bonjour,
pour écrire sur plusieurs lignes avec la touche Enter, tu dois programmer le OnKeyDown du StringGrid comme dans la FAQ :
et aussi mettre goAlwaysShowEditor de Options à TrueCode:
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;
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, :
A+Code:StringGrid1.Col := N+1 ;
Charly