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

 Delphi Discussion :

Besoin d'aide pour la fonction OnPlannerItemDraw du TDBPlanner


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2021
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2021
    Messages : 20
    Points : 13
    Points
    13
    Par défaut Besoin d'aide pour la fonction OnPlannerItemDraw du TDBPlanner
    Bonjour ! J'ai un problème très simple, mais que je n'arrive absolument pas à corriger

    Voici ce que je veux faire : Quand j'ouvre mon TDBPlanner, les items qui sont présents ont un champ dans l'OSP du planning, qui permet de différencier le type de l'item. EN fonction de ce type, je veux juste pouvoir colorier différemment le fond de l'item. Malheureusement, quand j'essaie d'utiliser OnPlannerItemDraw, pour changer la couleur en fonction du champ de l'osp, eh bien... mes items disparaissent.

    Voici l'extrait de code en question :
    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 planning.DBP_ReceptionPlannerItemDraw(Sender: TObject;
      PlannerItem: TPlannerItem; Canvas: TCanvas; Rect: TRect; Selected: Boolean);
    var
    type : string;
     
    begin
    type := OSP.fieldbyname('type').value;
     
      if type.equals('CF') then
      begin
      PlannerItem.Color := Clred;
     
      end;
     
      if type_cmde.equals('F') then
      begin
      end;
     
      if type_cmde.equals('P') then
      begin
      end;
    end;
    En faisant ça, dès qu'un item a pour type 'CF' il disparaît.


    Il est 1000% sûr que j'utilise mal la fonction, j'ai cherché partout pour la documentation sur cette fonction sur le site de TMS ou dans la doc du composant : il n'y a rien

    Merci d'avance pour votre aide !

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 638
    Points : 25 357
    Points
    25 357
    Par défaut
    Est-ce le Composant TMS ?

    C'est très osé !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if type.equals('CF') then
    amusant, je l'aurais écrit if type = 'CF' then...



    Il faudrait lire la documentation, comme ce n'est pas on composant standard, j'ignore si il y une propriété comme OwnerDraw ?
    Est-ce que la OnPlannerItemDraw considère que l'on remplace tout le dessin automatique par un dessin manuel

    TMS, je confonds toujours avec DevExpress, il n'y a pas un mécanisme de Style que l'on peut définir et appliquer selon un filtre ?

    Pourquoi ne pas changer la couleur lors de la création du TPlannerItem ?
    Utiliser cette astuce Use custom TPlannerItem classes in descendent TPlanner class with this example comme on le ferait avec un TTreeNode, cela permet de stocker les données dans l'objet et inversement appliquer des "effets" lors de la modification des propriétés.
    Comme fonctionne le mode DB connecté ? Comment sont créés les TPlannerItem ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2021
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2021
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Hello merci pour ta réponse, j'avais renommé le vrai nom des variables par des trucs plus simples pour rendre la chose plus claire et effectivement.. c'est pire. Désolé.

    C'est le composant TMS oui

    Rah oui pour le equals je crois que c'est une vieille habitude que j'ai du JAVA ...

    C'est aussi la piste que j'ai concernant onplannerItemDraw, j'ai l'impression qu'a partir du moment ou je change une propriété, il s'attends à ce que je donne toutes les infos de dessin de l'item. Ce qui ne m'arrange pas vraiment car je ne sais absolument pas comment ils sont construits par défaut, et que je veux juste changer le background :/

    Je n'ai pas vu de système de style pour TMS, mais étant un débutant, je ne peux rien nier ou confirmer :s

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

Discussions similaires

  1. Besoin d'aide pour la fonction"SI"
    Par chouchou_82 dans le forum Excel
    Réponses: 2
    Dernier message: 12/01/2009, 08h17
  2. besoin d aide pour les fonction en postgresql
    Par dannw dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 11/07/2007, 21h20
  3. Besoin d'aide pour la fonction execute immediate
    Par kevin8100 dans le forum Oracle
    Réponses: 13
    Dernier message: 25/06/2007, 15h00
  4. [FPDF] Besoin d'aide pour une fonction publipostage..;
    Par dark$hadow dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 10/02/2007, 15h39
  5. [Mail] besoin d'aide pour la fonction mail
    Par laymounos dans le forum Langage
    Réponses: 5
    Dernier message: 07/06/2006, 21h16

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