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

API, COM et SDKs Delphi Discussion :

Dessin GDI+ scintillement


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Par défaut Dessin GDI+ scintillement
    Bonjour,
    je suis actuellement entrain de retravailler des composants graphiques avec la lib GDI+ de prodigy v1.2.

    Or je me heurte à un problème de scintillement, car ma procedure paint dessine directement à l'écran avec un TGPGraphics.
    Comme il y a des images, des rectangles,des lignes..., tout ce calcul se voit à l'écran.

    Comment dessiner dans un tampon?
    J'ai testé une méthode avec deux TGPGraphics, sans succès.
    J'ai essayé de dessiner dans un TBitmap avec un TGPGraphics et de finir par faire un Canvas.Draw, mais sans succès non plus.
    Mais ca ne plaisait pas trop de toute facon vu que le but est de ne plus utiliser directement le canvas.

    Quelqu'un pourrait il me mettre sur la voie svp??
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 089
    Par défaut
    est-ce que DoubleBuffered est à true ?
    Après je ne connais pas cette lib, si c'est pour faire du graphisme avec de haute performance en restant en GDI, tu dois avoir le moyen d'utiliser un objet tampon puis un seule procédure mettre le tampon dans l'objet à l'écran
    Voir si il existe des API qui ressemblerait BeginUpdate\EndUpdate qui permettrait d'encapsuler une série d'opérations sans qu'elles soient directement récupercutés à l'écran !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre éclairé Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Par défaut
    Le double buffered est pas a true car c'est un objet qui hérite du TGraphicsControl et je ne sais pas pourquoi je ne peux lui mettre cette propriété.

    Pour faire simple ou essayer (mdr), j'ai réussi a réduire le scintillement en utilisant un TBitmap, un TGPGraphics que je fais pointer sur le canvas du tbitmap.
    A la fin il suffit juste avec un second TGPGraphics de pointer sur le canvas d'affichage et de dessiner le TBitmap, après l'avoir converti en TGPBitmap.

    Voila ca scintille beaucoup moins, mais franchement c'est lourd comme méthode.

    Et pour le double buffering, apparement c'est le parent du TGraphicscontrol qui doit l'être.
    Apres je ne fais que réecrire des librairies qui ne sont pas de moi donc je ne sais pas pourquoi ils ont utilisé un TGraphicscontrol

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 937
    Billets dans le blog
    6
    Par défaut
    N'est-ce point la fiche pour qui l'on doit affecter DoubleBuffered à True ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Membre éclairé Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Par défaut
    dans un tcustompanel, on peut utiliser cette instruction.
    Mais pas dans un tgraphiccontrol
    La question est pk?
    Parce que dans les deux cas tu peux le mettre sur la TForm aussi...

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Bonjour,

    La question est pk?
    ... parceque TWinControl.DoubleBuffered
    ... donc DoubleBuffered attribuable aux héritiers de TWinControl.

    A +.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

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

Discussions similaires

  1. Evenement Paint et dessins GDI+
    Par dridri dans le forum Windows Forms
    Réponses: 5
    Dernier message: 16/04/2007, 02h11
  2. [GDI,GDI+,OpenGL] Dessiner des cerles et des arcs
    Par romeo9423 dans le forum MFC
    Réponses: 1
    Dernier message: 17/05/2005, 09h44
  3. Comment dessiner sur un Bitmap sans scintillement ?
    Par TOTO32 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 10/01/2005, 10h11
  4. Dessiner un repere avec GDI ?
    Par djiwalloo dans le forum MFC
    Réponses: 19
    Dernier message: 12/10/2004, 11h57
  5. [GDI] dessin qui s'affiche en couleur puis en noir et blanc
    Par Harry_polin dans le forum Windows
    Réponses: 4
    Dernier message: 25/06/2004, 12h57

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