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 FMX Delphi Discussion :

Equivalent TPenMode VCL-->FMX


Sujet :

Composants FMX Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur DELPHI
    Inscrit en
    Janvier 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 127
    Points : 55
    Points
    55
    Par défaut Equivalent TPenMode VCL-->FMX
    Bonjour,

    J'effectue quelques tests graphiques sur FMX et je ne trouve pas l'équivalent du TpenMode de VCL.

    J'ai essayé d'appliquer les conseils de ce lien, mais je ne comprends pas toute les finalités :

    http://stackoverflow.com/questions/1...alent-drawline

    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 702
    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 702
    Points : 25 568
    Points
    25 568
    Par défaut
    .TCanvas.DrawLine utilise propriétés Stroke, StrokeThickness, StrokeCap, StrokeDash et StrokeJoin.

    A part le motif, pas de gestion de couleur plus avancé !
    AOpacity à 50 peut remplacer pmMerge

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur DELPHI
    Inscrit en
    Janvier 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 127
    Points : 55
    Points
    55
    Par défaut
    Merci ShaiLeTroll pour votre aide.

    J'utilise déjà toutes ses propriétés mais je ne sais pas comment faire pour reproduire l'équivalent Canvas.Pen.Mode := pmNotXor

    Merci de votre aide.

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur DELPHI
    Inscrit en
    Janvier 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 127
    Points : 55
    Points
    55
    Par défaut
    J'ai réussi a mettre au point une solution pour mon cas.
    Je vous la soumet :

    Je désirais dessiner un rectangle et faire apparaître le contour lors de l'événement mouseMove.

    Pour cela je sauvegarde dans un TBitmap temporaire l'image dans l'événement MouseDown :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FTempDrawbitmap := TBitmap.Create(0,0);
    FTempDrawbitmap.Assign(FImage.Bitmap);
    puis avant de dessiner mon rectangle dans l'événement MouseMove, je la restaure dans le rectangle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    R.TopLeft := PointF(0.0, 0.0);
      R.BottomRight := PointF(FPaintBox.Width, FPaintBox.Height);
      FPaintBox.Bitmap.Canvas.DrawBitmap(FTempDrawBitmap, R, R, 100);
      FPaintBox.Bitmap.Canvas.Stroke.Color := claBlack;
      FPaintBox.Bitmap.Canvas.DrawRect(Lrect, 0, 0, AllCorners, 1);

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 702
    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 702
    Points : 25 568
    Points
    25 568
    Par défaut
    pmNotXor ça donne comme résultat ?
    Je crois avoir utilisé uniquement pmNot, qui inverse juste la couleur de fond, blanc sur noir, jaune sur bleu ... qui garanti un contraste marqué

    Ah, je suppose qu'en appliquant deux fois pmNotXor cela devait revenir à l'image d'origine ?
    Avec pmNot, j'avais aussi utilisé ce principe, d'annuler le rectangle avec lui même sans avoir mémorisé l'image d'avant !

    En FMX, as-tu accès à l'API sous-jacente ?
    Si oui, avec des directives de compilation ou une Pattern Strategy tu fais un code selon l'API qui utilisera au mieux les capacités de chacune !

    Sinon, perso, le coup du sélecteur rectangle, je l'ai fait avec un TPanel transparent en supprimant le traitement de WM_ERASEBKGND dans la WndProc du coup, il ne dessinait que son contour 3D et la TImage se redessinait d'elle même lorsque le Panel bougeait dessus !
    le Déplacement géré par WM_LBUTTONUP \ WM_SYSCOMMAND, SC_MOVE
    Une solution encore moins transposable en FMX que TPenNode

    Tu devrais regarder si tu peux avoir un TShape que tu peux déplacer\dimensionner lors du OnMouveMove\OnMouseDown ...
    Images attachées Images attachées  

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

Discussions similaires

  1. XE7 - AssignPrn VCL et FMX différents ?
    Par Papy214 dans le forum Langage
    Réponses: 10
    Dernier message: 13/07/2015, 18h46
  2. XE7 - VCL et FMX : réaliser un paquet
    Par Invité dans le forum Delphi
    Réponses: 6
    Dernier message: 10/11/2014, 20h11
  3. Réponses: 0
    Dernier message: 17/04/2013, 21h21
  4. Composants pour VCL et FMX
    Par cadetill dans le forum Composants VCL
    Réponses: 1
    Dernier message: 07/01/2013, 10h52
  5. Equivalent de Application.Minimize pour FMX ?
    Par sinfoni dans le forum Composants FMX
    Réponses: 4
    Dernier message: 12/04/2012, 11h39

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